如何在Python中进行OpenAI-API的快速调用?

如何在Python中进行OpenAI-API的快速调用?

一、OneAPI

官方简介:LLM调用工具是为研究人员设计的,用于与语言模型交互。它可以通过用户界面(UI)、代码或命令来访问。

可以使用 ChatGPT 或其他 LLM API 进行多轮对话,并自动将其保存为特定于训练的数据格式。

第1步:安装(需要Python环境和python >= 3.11):pip install one-api-tool

第2步:启动命令:one-api

第3步:选择API类型并按照指南设置密钥或其他信息

第4步:启动聊天对话框并开始对话

第5步:无需重启即可编辑对话

  • : + clear 清除对话历史
  • : + d_clear 清除对话历史和系统提示
  • : + undo 移除最新的消息
  • : + save 保存当前会话历史(程序在退出时也会自动保存)
  • : + load 从缓存文件加载最后一段对话。指定数字索引以加载特定对话,例如::load -2
  • : + system 设置系统提示

当前支持的API包括:

  • OpenAI官方API
    • ChatGPT:GPT-3.5-turbo/GPT-4
    • Token数量统计
    • 嵌入生成
  • Microsoft Azure OpenAI资源端点API
    • ChatGPT:GPT-3.5-turbo/GPT-4
    • Token数量统计
    • 嵌入生成
  • Anthropic Claude系列模型API
    • Claude-v1.3-100k等
    • Token数量统计
  • Huggingface LLMs
    • Huggingface_hub
    • 本地部署的推理端点,例如,文本生成推理

vLLM部署的推理端点。

注意:如果使用如下OpenAI兼容API部署vLLM,应该将的api配置设置为:

api_type="openai"

api_base="http://ip:port/v1"

api_key="EMPTY

使用OpenAI兼容API部署vLLM:

python -m vllm.entrypoints.openai.api_server \--model /path_to_the_model/facebook/opt-125m \--chat-template ./examples/template_chatml.jinja

安装要求 Python >=3.9

pip install -U one-api-tool

二、用法

使用python

  • OpenAI config:

{ "api_key": "YOUR_API_KEY", "api_base": "https://api.openai.com/v1", "api_type": "openai"}

  • Azure OpenAI config:

{ "api_key": "YOUR_API_KEY", "api_base": "Replace with your Azure OpenAI resource's endpoint value.", "api_type": "azure", "api_version": "2023-03-15-preview" }

  • Anthropic config:

{ "api_key": "YOUR_API_KEY", "api_base": "https://api.anthropic.com", "api_type": "anthropic"}

  • Huggingface config:

{ "api_key": "YOUR_API_KEY", "api_base": "https://api.anthropic.com", "api_type": "anthropic"}

  • VLLM config:

{ "api_key": "", "api_base": "http://ip:port/generate", "api_type": "vllm", "chat_template": "your_jinja2_template"}

api_key: OpenAI API key从OpenAI官网获取,Claude API key从Anthropic官网获取。

api_base:这是用于发送请求的基本API。也可以指定代理URL,例如“https://your_proxy_domain/v1”。例如,可以使用Cloudflare worker来代理OpenAI站点。

如果正在使用Azure api,则可以在Azure资源仪表板上找到相关信息。API格式通常遵循以下模式:https://{your_organization}.openai.azure.com/

api_type:目前支持的值为“open_ai”、“azure”或“anthropic”。

api_version:可选字段。Azure提供了几个版本的api,比如“2023-03-15-preview”。然而,OpenAI SDK总是为这个字段设置一个默认值。因此,只有在希望使用特定版本的api时,才应该指定特定的值。

chat_template:可选字段。当使用本地端点服务器时,可以传递专门为该模型设计的Jinja2模板,在训练期间对模板进行匹配。模板呈现函数以prompt和system为参数:template.render(prompt=prompt, system=system) 根据提示类型的不同,默认模板会有所不同。

对于字符串输入,如下所示:

DEFAULT_STR_TEMP_SYSTEM_USER_ASSISTANT = """{% if system != '' %}{{'<s>System:\n'+system+'\n\nHuman\n'+prompt+'\n\nAssistant:\n'}}{% else %}{{'<s>Human:\n'+prompt+'\n\nAssistant:\n'}}{% endif %}"""

对于OpenAI格式的字典消息列表,默认模板为:

DEFAULT_LIST_MSG_TEMP_SYSTEM_USER_ASSISTANT = """{% for message in prompt %}{% if loop.first %}{% if message['role'] == 'user' %}{% if loop.length != 1 %}{{ '<s>Human:\n' + message['content'] }}{% else %}{{ '<s>Human:\n' + message['content'] + '\n\nAssistant:\n' }}{% endif %}{% elif message['role'] == 'system' %}{{ '<s>System:\n' + message['content'] }}{% endif %}{% elif message['role'] == 'user' %}{% if loop.last %}{{ '\n\nHuman:\n' + message['content'] + '\n\nAssistant:\n'}}{% else %}{{ '\n\nHuman:\n' + message['content']}}{% endif %}{% elif message['role'] == 'assistant' %}{{ '\n\nAssistant:\n' + message['content'] }}{% endif %}{% endfor %}"""

延展阅读:

openAI最新AI大模型GPT-4o可以如何赋能客服团队?

GPT-4o背后的技术原理猜想有哪些?

智能机器探索:如何设计AGI时代的智能客服机器人?

Sora技术深度解析:如何理解Sora中的“世界模拟器”?

咨询方案 预约演示                        
(0)
AI工程专家-RielAI工程专家-Riel

相关推荐