一、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-
125
m \
--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可以如何赋能客服团队?
咨询方案