diff --git a/README.md b/README.md
index e1b267b..60ca8be 100644
--- a/README.md
+++ b/README.md
@@ -276,6 +276,7 @@ volumes:
## 模型说明
以下对所有可支持的模型的配置和使用方法进行说明,模型接口实现在项目的 `bot/` 目录下。
+>部分模型厂商接入有官方sdk和OpenAI兼容两种方式,建议使用OpenAI兼容的方式。
OpenAI
@@ -288,12 +289,14 @@ volumes:
{
"model": "gpt-4.1-mini",
"open_ai_api_key": "YOUR_API_KEY",
- "open_ai_api_base": "https://api.openai.com/v1"
+ "open_ai_api_base": "https://api.openai.com/v1",
+ "bot_type": "chatGPT"
}
```
- - `model`: 与OpenAI接口的model参数一致,支持包括 gpt-4.1系列, gpt-4o系列, o系列模型
+ - `model`: 与OpenAI接口的 [model参数](https://platform.openai.com/docs/models) 一致,支持包括 o系列、gpt-4系列、gpt-3.5系列等模型
- `open_ai_api_base`: 如果需要接入第三方代理接口,可通过修改该参数进行接入
+ - `bot_type`: 使用OpenAI相关模型时无需填写。当使用第三方代理接口接入Claude等非OpenAI官方模型时,该参数设为 `chatGPT`
@@ -317,7 +320,241 @@ volumes:
+ `model`: model字段填写空则直接使用智能体的模型,可在平台中灵活切换,[模型列表](https://link-ai.tech/console/models)中的全部模型均可使用
-更多模型说明:Coming soon...
+
+百度文心
+方式一:官方SDK接入,配置如下:
+
+```json
+{
+ "model": "wenxin",
+ "baidu_wenxin_api_key": "IajztZ0bDxgnP9bEykU7lBer",
+ "baidu_wenxin_secret_key": "EDPZn6L24uAS9d8RWFfotK47dPvkjD6G",
+}
+```
+ - `model`: 可填 `wenxin`和`wenxin-4`,对应模型为 文心-3.5 和 文心-4.0
+ - `baidu_wenxin_api_key`:参考 [千帆平台-access_token鉴权](https://cloud.baidu.com/doc/WENXINWORKSHOP/s/dlv4pct3s) 文档获取 API Key
+ - `baidu_wenxin_secret_key`:参考 [千帆平台-access_token鉴权](https://cloud.baidu.com/doc/WENXINWORKSHOP/s/dlv4pct3s) 文档获取 Secret Key
+
+方式二:OpenAI兼容方式接入,配置如下:
+```json
+{
+ "bot_type": "chatGPT",
+ "model": "qwen-turbo",
+ "open_ai_api_base": "https://qianfan.baidubce.com/v2",
+ "open_ai_api_key": "bce-v3/ALTxxxxxxd2b"
+}
+```
+- `bot_type`: OpenAI兼容方式
+- `model`: 支持官方所有模型,参考[模型列表](https://cloud.baidu.com/doc/WENXINWORKSHOP/s/Wm9cvy6rl)
+- `open_ai_api_base`: 百度文心API的 BASE URL
+- `open_ai_api_key`: 百度文心的 API-KEY,参考 [官方文档](https://cloud.baidu.com/doc/qianfan-api/s/ym9chdsy5) ,在 [控制台](https://console.bce.baidu.com/iam/#/iam/apikey/list) 创建API Key
+
+
+
+
+Claude
+
+1. API Key创建:在 [Claude控制台](https://console.anthropic.com/settings/keys) 创建API Key
+
+2. 填写配置
+
+```json
+{
+ "model": "claude-sonnet-4-0",
+ "claude_api_key": "YOUR_API_KEY",
+}
+```
+ - `model`: 参考 [官方模型ID](https://docs.anthropic.com/en/docs/about-claude/models/overview#model-aliases) ,例如`claude-opus-4-0`、`claude-3-7-sonnet-latest`等
+
+
+
+通义千问
+
+方式一:官方SDK接入,配置如下:
+
+```json
+{
+ "model": "qwen-turbo",
+ "dashscope_api_key": "sk-qVxxxxG"
+}
+```
+ - `model`: 可填写`qwen-turbo、qwen-plus、qwen-max`
+ - `dashscope_api_key`: 通义千问的 API-KEY,参考 [官方文档](https://bailian.console.aliyun.com/?tab=api#/api) ,在 [控制台](https://bailian.console.aliyun.com/?tab=model#/api-key) 创建
+
+方式二:OpenAI方式接入,配置如下:
+```json
+{
+ "bot_type": "chatGPT",
+ "model": "qwen-turbo",
+ "open_ai_api_base": "https://dashscope.aliyuncs.com/compatible-mode/v1",
+ "open_ai_api_key": "sk-qVxxxxG"
+}
+```
+- `bot_type`: OpenAI兼容方式
+- `model`: 支持官方所有模型,参考[模型列表](https://help.aliyun.com/zh/model-studio/models?spm=a2c4g.11186623.0.0.78d84823Kth5on#9f8890ce29g5u)
+- `open_ai_api_base`: 通义千问API的 BASE URL
+- `open_ai_api_key`: 通义千问的 API-KEY,参考 [官方文档](https://bailian.console.aliyun.com/?tab=api#/api) ,在 [控制台](https://bailian.console.aliyun.com/?tab=model#/api-key) 创建
+
+
+
+Gemini
+
+API Key创建:在 [控制台](https://aistudio.google.com/app/apikey?hl=zh-cn) 创建API Key ,配置如下
+```json
+{
+ "model": "gemini-2.5-pro",
+ "gemini_api_key": ""
+}
+```
+ - `model`: 参考[官方文档-模型列表](https://ai.google.dev/gemini-api/docs/models?hl=zh-cn)
+
+
+
+MiniMax
+
+方式一:官方接入,配置如下:
+
+```json
+{
+ "model": "abab6.5-chat",
+ "Minimax_api_key": "",
+ "Minimax_group_id": ""
+}
+```
+ - `model`: 可填写`abab6.5-chat`
+ - `Minimax_api_key`:MiniMax平台的API-KEY,在 [控制台](https://platform.minimaxi.com/user-center/basic-information/interface-key) 创建
+ - `Minimax_group_id`: 在 [账户信息](https://platform.minimaxi.com/user-center/basic-information) 右上角获取
+
+方式二:OpenAI方式接入,配置如下:
+```json
+{
+ "bot_type": "chatGPT",
+ "model": "MiniMax-M1",
+ "open_ai_api_base": "https://api.minimaxi.com/v1",
+ "open_ai_api_key": ""
+}
+```
+- `bot_type`: OpenAI兼容方式
+- `model`: 可填`MiniMax-M1、MiniMax-Text-01`,参考[API文档](https://platform.minimaxi.com/document/%E5%AF%B9%E8%AF%9D?key=66701d281d57f38758d581d0#QklxsNSbaf6kM4j6wjO5eEek)
+- `open_ai_api_base`: MiniMax平台API的 BASE URL
+- `open_ai_api_key`: MiniMax平台的API-KEY,在 [控制台](https://platform.minimaxi.com/user-center/basic-information/interface-key) 创建
+
+
+
+Moonshot
+
+方式一:官方接入,配置如下:
+
+```json
+{
+ "model": "moonshot-v1-8k",
+ "moonshot_api_key": "moonshot-v1-8k"
+}
+```
+ - `model`: 可填写`moonshot-v1-8k、 moonshot-v1-32k、 moonshot-v1-128k`
+ - `moonshot_api_key`: Moonshot的API-KEY,在 [控制台](https://platform.moonshot.cn/console/api-keys) 创建
+
+方式二:OpenAI方式接入,配置如下:
+```json
+{
+ "bot_type": "chatGPT",
+ "model": "moonshot-v1-8k",
+ "open_ai_api_base": "https://api.moonshot.cn/v1",
+ "open_ai_api_key": ""
+}
+```
+- `bot_type`: OpenAI兼容方式
+- `model`: 可填写`moonshot-v1-8k、 moonshot-v1-32k、 moonshot-v1-128k`
+- `open_ai_api_base`: Moonshot的 BASE URL
+- `open_ai_api_key`: Moonshot的 API-KEY,在 [控制台](https://platform.moonshot.cn/console/api-keys) 创建
+
+
+
+讯飞星火
+
+方式一:官方接入,配置如下:
+参考 [官方文档-快速指引](https://www.xfyun.cn/doc/platform/quickguide.html#%E7%AC%AC%E4%BA%8C%E6%AD%A5-%E5%88%9B%E5%BB%BA%E6%82%A8%E7%9A%84%E7%AC%AC%E4%B8%80%E4%B8%AA%E5%BA%94%E7%94%A8-%E5%BC%80%E5%A7%8B%E4%BD%BF%E7%94%A8%E6%9C%8D%E5%8A%A1) 获取 `APPID、 APISecret、 APIKey` 三个参数
+
+```json
+{
+ "model": "xunfei",
+ "xunfei_app_id": "",
+ "xunfei_api_key": "",
+ "xunfei_api_secret": "",
+ "xunfei_domain": "4.0Ultra",
+ "xunfei_spark_url": "wss://spark-api.xf-yun.com/v4.0/chat"
+}
+```
+ - `model`: 填 `xunfei`
+ - `xunfei_domain`: 可填写 `4.0Ultra、 generalv3.5、 max-32k、 generalv3、 pro-128k、 lite`
+ - `xunfei_spark_url`: 填写参考 [官方文档-请求地址](https://www.xfyun.cn/doc/spark/Web.html#_1-1-%E8%AF%B7%E6%B1%82%E5%9C%B0%E5%9D%80) 的说明
+
+方式二:OpenAI方式接入,配置如下:
+```json
+{
+ "bot_type": "chatGPT",
+ "model": "4.0Ultra",
+ "open_ai_api_base": "https://spark-api-open.xf-yun.com/v1",
+ "open_ai_api_key": ""
+}
+```
+- `bot_type`: OpenAI兼容方式
+- `model`: 可填写 `4.0Ultra、 generalv3.5、 max-32k、 generalv3、 pro-128k、 lite`
+- `open_ai_api_base`: 讯飞星火平台的 BASE URL
+- `open_ai_api_key`: 讯飞星火平台的[APIPassword](https://console.xfyun.cn/services/bm3) ,因模型而已
+
+
+
+智谱AI
+
+方式一:官方接入,配置如下:
+
+```json
+{
+ "model": "glm-4-plus",
+ "zhipu_ai_api_key": "",
+}
+```
+ - `model`: 可填 `glm-4-plus、glm-4-air-250414、glm-4-airx、glm-4-long 、glm-4-flashx 、glm-4-flash-250414`, 参考 [glm-4系列模型编码](https://bigmodel.cn/dev/api/normal-model/glm-4)
+ - `zhipu_ai_api_key`: 智谱AI平台的 API KEY,在 [控制台](https://www.bigmodel.cn/usercenter/proj-mgmt/apikeys) 创建
+
+方式二:OpenAI方式接入,配置如下:
+```json
+{
+ "bot_type": "chatGPT",
+ "model": "glm-4-plus",
+ "open_ai_api_base": "https://open.bigmodel.cn/api/paas/v4",
+ "open_ai_api_key": ""
+}
+```
+- `bot_type`: OpenAI兼容方式
+- `model`: 可填 `glm-4-plus、glm-4-air-250414、glm-4-airx、glm-4-long 、glm-4-flashx 、glm-4-flash-250414`, 参考 [glm-4系列模型编码](https://bigmodel.cn/dev/api/normal-model/glm-4)
+- `open_ai_api_base`: 智谱AI平台的 BASE URL
+- `open_ai_api_key`: 智谱AI平台的 API KEY,在 [控制台](https://www.bigmodel.cn/usercenter/proj-mgmt/apikeys) 创建
+
+
+
+ModelScope
+
+
+
+```json
+{
+ "bot_type": "modelscope",
+ "model": "Qwen/QwQ-32B",
+ "modelscope_api_key": "your_api_key",
+ "modelscope_base_url": "https://api-inference.modelscope.cn/v1/chat/completions",
+ "text_to_image": "MusePublic/489_ckpt_FLUX_1",
+}
+```
+
+- `bot_type`: modelscope接口格式
+- `model`: 参考[模型列表](https://www.modelscope.cn/models?filter=inference_type&page=1)
+- `modelscope_api_key`: 参考 [官方文档-访问令牌](https://modelscope.cn/docs/accounts/token) ,在 [控制台](https://modelscope.cn/my/myaccesstoken)
+- `modelscope_base_url`: modelscope平台的 BASE URL
+- `text_to_image`: 图像生成模型,参考[模型列表](https://www.modelscope.cn/models?filter=inference_type&page=1)
+
+
## 通道说明
diff --git a/bot/chatgpt/chat_gpt_bot.py b/bot/chatgpt/chat_gpt_bot.py
index 154a422..348d5fa 100644
--- a/bot/chatgpt/chat_gpt_bot.py
+++ b/bot/chatgpt/chat_gpt_bot.py
@@ -130,7 +130,7 @@ class ChatGPTBot(Bot, OpenAIImage):
args = self.args
response = openai.ChatCompletion.create(api_key=api_key, messages=session.messages, **args)
# logger.debug("[CHATGPT] response={}".format(response))
- # logger.info("[ChatGPT] reply={}, total_tokens={}".format(response.choices[0]['message']['content'], response["usage"]["total_tokens"]))
+ logger.info("[ChatGPT] reply={}, total_tokens={}".format(response.choices[0]['message']['content'], response["usage"]["total_tokens"]))
return {
"total_tokens": response["usage"]["total_tokens"],
"completion_tokens": response["usage"]["completion_tokens"],
diff --git a/requirements-optional.txt b/requirements-optional.txt
index 8a9a0f9..cebc9e9 100644
--- a/requirements-optional.txt
+++ b/requirements-optional.txt
@@ -28,7 +28,7 @@ websocket-client==1.2.0
# claude bot
curl_cffi
# claude API
-anthropic
+anthropic==0.25.0
# tongyi qwen
broadscope_bailian