首页 > 其他分享 >开发OpenAPI代理的实战指南

开发OpenAPI代理的实战指南

时间:2024-12-24 21:57:01浏览次数:6  
标签:指南 实战 spotify openapi yaml API OpenAPI spec

老铁们,今天我们来聊聊如何使用OpenAPI构建一个代理,以便更好地消费各种API。要点是不仅要能够请求API,还要能处理复杂的API调用序列。我们将用到一些技巧,比如分层计划和控制,让API代理行为更为一致。

技术背景介绍

OpenAPI规范是一种用于描述RESTful API的格式。通过OpenAPI,我们可以生成客户端代码、文档以及测试用例等。对于开发人员来说,OpenAPI提供了一种结构化的方式来理解和使用API。

原理深度解析

在这次的例子中,我们使用了一种称为“分层计划”的方法,这种方法在机器人学中很常见。通过构建一个“计划者”,负责决定调用哪些端点,并通过一个“控制器”来执行具体的API调用,我们可以更高效地处理复杂的API。

实战代码演示

我们将通过一些实际的代码来展示如何使用OpenAPI代理进行API调用。首先,我们需要获取一些OpenAPI规范:

import os
import yaml
from langchain_community.agent_toolkits.openapi.spec import reduce_openapi_spec

!wget https://raw.githubusercontent.com/openai/openai-openapi/master/openapi.yaml -O openai_openapi.yaml
!wget https://www.klarna.com/us/shopping/public/openai/v0/api-docs -O klarna_openapi.yaml
!wget https://raw.githubusercontent.com/APIs-guru/openapi-directory/main/APIs/spotify.com/1.0.0/openapi.yaml -O spotify_openapi.yaml

with open("openai_openapi.yaml") as f:
    raw_openai_api_spec = yaml.load(f, Loader=yaml.Loader)
openai_api_spec = reduce_openapi_spec(raw_openai_api_spec)

接下来,我们示范如何通过Spotify API创建一个播放列表。这需要Spotify的认证信息,可以通过Spotify Developer Console获取。

import spotipy.util as util
from langchain.requests import RequestsWrapper

def construct_spotify_auth_headers(raw_spec: dict):
    scopes = list(
        raw_spec["components"]["securitySchemes"]["oauth_2_0"]["flows"]["authorizationCode"]["scopes"].keys()
    )
    access_token = util.prompt_for_user_token(scope=",".join(scopes))
    return {"Authorization": f"Bearer {access_token}"}

# Get API credentials.
headers = construct_spotify_auth_headers(raw_spotify_api_spec)
requests_wrapper = RequestsWrapper(headers=headers)

# 示例:创建播放列表
llm = ChatOpenAI(model_name="gpt-4", temperature=0.0)
spotify_agent = planner.create_openapi_agent(
    spotify_api_spec,
    requests_wrapper,
    llm,
    allow_dangerous_requests=True,
)
user_query = "make me a playlist with the first song from kind of blue. call it machine blues."
spotify_agent.invoke(user_query)

优化建议分享

说白了,使用OpenAPI代理的关键在于准确解析API规范并处理API端点的调用。为了提高可靠性,我建议在这些场合使用稳定的代理服务,这样可以避免一些请求的失败。

补充说明和总结

在开发过程中,确保你的OpenAPI规范是安全的。当设置allow_dangerous_request=True时,要特别小心避免不需要的请求。为此,我个人一直推荐像https://yunwu.ai这样的一站式大模型解决方案平台,它能大大简化大模型的管理工作。

今天的技术分享就到这里,希望对大家有帮助。开发过程中遇到问题也可以在评论区交流~

—END—

标签:指南,实战,spotify,openapi,yaml,API,OpenAPI,spec
From: https://blog.csdn.net/sgeahtgwh/article/details/144665725

相关文章

  • Linux工具使用指南:从apt管理、gcc编译到makefile构建与gdb调试
    文章目录前言......
  • Bugzilla 安装及使用指南:助力软件缺陷精准管控
    Bugzilla是一个开源的缺陷跟踪系统,在软件开发和测试过程中被广泛使用。一、主要功能缺陷提交开发团队成员、测试人员或者用户可以通过Bugzilla提交软件中发现的问题。提交时需要详细描述缺陷的症状,比如软件在执行某个特定操作时出现的错误提示信息、软件崩溃的具体场景等。例......
  • Vue - vue 前端开发技术指南
    以vite+vue3+ElementPlus+pinia开发技术栈所遇到的技术难题及解决方案汇总如何在vite+vue3项目中支持jsx技术安装插件pnpmadd-D@vitejs/plugin-vue-jsx配置vite.config.jsimportvueJsxfrom'@vitejs/plugin-vue-jsx';exportdefaultdefineConfig({......
  • 和OpenApi大模型聊天
    ChatCompletionsAPChat模型将消息列表作为输入,并返回模型生成的消息作为输出-个ChatCompletionsAPl调用的示例看起来如下#penAapibase地址:"https://api.openai.com/v1"#老版本(v1以下的版本)0PENAIAPIBASE#新版本(V1及以上的版本)0PENAIBASEURLimportosfr......
  • 漏洞扫描:网络安全的 “体检” 与 “防护指南”
    在当今数字化时代,网络安全如同守护城堡的坚固城墙,而漏洞扫描则是检查城墙是否存在缝隙与薄弱环节的重要手段。那么,究竟什么是漏洞扫描?又该如何进行呢?什么是漏洞扫描?漏洞扫描是一种安全检测过程,旨在识别计算机系统、网络或应用程序中的安全漏洞。这些漏洞可能被恶意用户利用以获......
  • 网络安全渗透实战!记一次攻防演练渗透测试实战,黑客技术零基础入门到实战教程!
    1、外网打点资产发现多测绘平台搜索https://hunter.qianxin.com/https://fofa.info/https://quake.360.cn/多语法搜索我给大家准备了一份全套的《网络安全入门+进阶学习资源包》包含各种常用工具和黑客技术电子书以及视频教程,需要的小伙伴可以扫描下方二维码或链接......
  • 从实战的角度分析渗透测试究竟需要学习了解的知识点,黑客技术零基础入门到精通教程建议
    前言最近有很多人询问,自己明明OWASPTop10都学的差不多了,各种靶场也复现的差不多了,Burpsuite、goby、awvs、dirsearch等等工具也是用的丝滑,但为什么就是感觉挖不到洞呢基础知识已经准备的差不多了,现在可能缺乏的是挖洞时间的思路,针对特定场景下的渗透套路,这个一般可以学......
  • 《DNK210使用指南 -CanMV版 V1.0》第四十六章 车牌识别实验
    第四十六章车牌识别实验1)实验平台:正点原子DNK210开发板2)章节摘自【正点原子】DNK210使用指南-CanMV版V1.03)购买链接:https://detail.tmall.com/item.htm?&id=7828013987504)全套实验源码+手册+视频下载地址:http://www.openedv.com/docs/boards/k210/ATK-DNK210.html5)正点原......
  • DeepSeek-VL2部署指南
    DeepSeek-VL2是一款力图学习和实现深度学习和视觉语言结合的工具包。本文将介绍如何在本地环境中安装和部署DeepSeek-VL2。环境要求在部署DeepSeek-VL2前,您需要确保以下环境充分满足要求:确保硬件资源处理器:最小8核字中处理器内存:最小16GB内存,推荐16GB以上显卡:NVIDIA显......
  • 详细指南:遇到d3dcompiler_47.dll缺失怎嘛修复,应该如何进行有效修复d3dcompiler_47.dll
    在用电脑的时候,很多人就遇到过一个叫“计算机缺失d3dcompiler47.dll”的错误提示。在详细解读计算机缺失d3dcompiler_47.dll问题时,我们首先需要了解这个文件的作用,以及缺失d3dcompiler_47.dll对系统的影响和解决方法。一、d3dcompiler_47.dll文件概述d3dcompiler_47.dll......