mirror of
https://github.com/langbot-app/LangBot.git
synced 2026-06-09 23:36:02 +00:00
Compare commits
7 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
fde6822b5c | ||
|
|
930321bcf1 | ||
|
|
c45931363a | ||
|
|
9c6491e5ee | ||
|
|
9bc248f5bc | ||
|
|
becac2fde5 | ||
|
|
1e1a103882 |
@@ -2,11 +2,12 @@
|
|||||||
<p align="center">
|
<p align="center">
|
||||||
<img src="https://qchatgpt.rockchin.top/logo.png" alt="QChatGPT" width="180" />
|
<img src="https://qchatgpt.rockchin.top/logo.png" alt="QChatGPT" width="180" />
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<div align="center">
|
<div align="center">
|
||||||
|
|
||||||
# QChatGPT
|
# QChatGPT
|
||||||
|
|
||||||
|
<a href="https://trendshift.io/repositories/6187" target="_blank"><img src="https://trendshift.io/api/badge/repositories/6187" alt="RockChinQ%2FQChatGPT | Trendshift" style="width: 250px; height: 55px;" width="250" height="55"/></a>
|
||||||
|
|
||||||
[](https://github.com/RockChinQ/QChatGPT/releases/latest)
|
[](https://github.com/RockChinQ/QChatGPT/releases/latest)
|
||||||
<a href="https://hub.docker.com/repository/docker/rockchin/qchatgpt">
|
<a href="https://hub.docker.com/repository/docker/rockchin/qchatgpt">
|
||||||
<img src="https://img.shields.io/docker/pulls/rockchin/qchatgpt?color=blue" alt="docker pull">
|
<img src="https://img.shields.io/docker/pulls/rockchin/qchatgpt?color=blue" alt="docker pull">
|
||||||
|
|||||||
30
pkg/config/migrations/m005_deepseek_cfg_completion.py
Normal file
30
pkg/config/migrations/m005_deepseek_cfg_completion.py
Normal file
@@ -0,0 +1,30 @@
|
|||||||
|
from __future__ import annotations
|
||||||
|
|
||||||
|
from .. import migration
|
||||||
|
|
||||||
|
|
||||||
|
@migration.migration_class("deepseek-config-completion", 5)
|
||||||
|
class DeepseekConfigCompletionMigration(migration.Migration):
|
||||||
|
"""OpenAI配置迁移
|
||||||
|
"""
|
||||||
|
|
||||||
|
async def need_migrate(self) -> bool:
|
||||||
|
"""判断当前环境是否需要运行此迁移
|
||||||
|
"""
|
||||||
|
return 'deepseek-chat-completions' not in self.ap.provider_cfg.data['requester'] \
|
||||||
|
or 'deepseek' not in self.ap.provider_cfg.data['keys']
|
||||||
|
|
||||||
|
async def run(self):
|
||||||
|
"""执行迁移
|
||||||
|
"""
|
||||||
|
if 'deepseek-chat-completions' not in self.ap.provider_cfg.data['requester']:
|
||||||
|
self.ap.provider_cfg.data['requester']['deepseek-chat-completions'] = {
|
||||||
|
'base-url': 'https://api.deepseek.com',
|
||||||
|
'args': {},
|
||||||
|
'timeout': 120,
|
||||||
|
}
|
||||||
|
|
||||||
|
if 'deepseek' not in self.ap.provider_cfg.data['keys']:
|
||||||
|
self.ap.provider_cfg.data['keys']['deepseek'] = []
|
||||||
|
|
||||||
|
await self.ap.provider_cfg.dump_config()
|
||||||
@@ -5,6 +5,7 @@ import importlib
|
|||||||
from .. import stage, app
|
from .. import stage, app
|
||||||
from ...config import migration
|
from ...config import migration
|
||||||
from ...config.migrations import m001_sensitive_word_migration, m002_openai_config_migration, m003_anthropic_requester_cfg_completion, m004_moonshot_cfg_completion
|
from ...config.migrations import m001_sensitive_word_migration, m002_openai_config_migration, m003_anthropic_requester_cfg_completion, m004_moonshot_cfg_completion
|
||||||
|
from ...config.migrations import m005_deepseek_cfg_completion
|
||||||
|
|
||||||
|
|
||||||
@stage.stage_class("MigrationStage")
|
@stage.stage_class("MigrationStage")
|
||||||
|
|||||||
@@ -30,7 +30,14 @@ class AiocqhttpMessageConverter(adapter.MessageConverter):
|
|||||||
msg_id = msg.id
|
msg_id = msg.id
|
||||||
msg_time = msg.time
|
msg_time = msg.time
|
||||||
elif type(msg) is mirai.Image:
|
elif type(msg) is mirai.Image:
|
||||||
msg_list.append(aiocqhttp.MessageSegment.image(msg.path))
|
arg = ''
|
||||||
|
|
||||||
|
if msg.url:
|
||||||
|
arg = msg.url
|
||||||
|
elif msg.path:
|
||||||
|
arg = msg.path
|
||||||
|
|
||||||
|
msg_list.append(aiocqhttp.MessageSegment.image(arg))
|
||||||
elif type(msg) is mirai.At:
|
elif type(msg) is mirai.At:
|
||||||
msg_list.append(aiocqhttp.MessageSegment.at(msg.target))
|
msg_list.append(aiocqhttp.MessageSegment.at(msg.target))
|
||||||
elif type(msg) is mirai.AtAll:
|
elif type(msg) is mirai.AtAll:
|
||||||
|
|||||||
15
pkg/provider/modelmgr/apis/deepseekchatcmpl.py
Normal file
15
pkg/provider/modelmgr/apis/deepseekchatcmpl.py
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
from __future__ import annotations
|
||||||
|
|
||||||
|
from ....core import app
|
||||||
|
|
||||||
|
from . import chatcmpl
|
||||||
|
from .. import api
|
||||||
|
|
||||||
|
|
||||||
|
@api.requester_class("deepseek-chat-completions")
|
||||||
|
class DeepseekChatCompletions(chatcmpl.OpenAIChatCompletions):
|
||||||
|
"""Deepseek ChatCompletion API 请求器"""
|
||||||
|
|
||||||
|
def __init__(self, ap: app.Application):
|
||||||
|
self.requester_cfg = ap.provider_cfg.data['requester']['deepseek-chat-completions']
|
||||||
|
self.ap = ap
|
||||||
@@ -6,7 +6,7 @@ from . import entities
|
|||||||
from ...core import app
|
from ...core import app
|
||||||
|
|
||||||
from . import token, api
|
from . import token, api
|
||||||
from .apis import chatcmpl, anthropicmsgs, moonshotchatcmpl
|
from .apis import chatcmpl, anthropicmsgs, moonshotchatcmpl, deepseekchatcmpl
|
||||||
|
|
||||||
FETCH_MODEL_LIST_URL = "https://api.qchatgpt.rockchin.top/api/v2/fetch/model_list"
|
FETCH_MODEL_LIST_URL = "https://api.qchatgpt.rockchin.top/api/v2/fetch/model_list"
|
||||||
|
|
||||||
|
|||||||
@@ -1 +1 @@
|
|||||||
semantic_version = "v3.1.0.4"
|
semantic_version = "v3.1.1"
|
||||||
|
|||||||
@@ -59,6 +59,11 @@
|
|||||||
"name": "moonshot-v1-128k",
|
"name": "moonshot-v1-128k",
|
||||||
"requester": "moonshot-chat-completions",
|
"requester": "moonshot-chat-completions",
|
||||||
"token_mgr": "moonshot"
|
"token_mgr": "moonshot"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "deepseek-chat",
|
||||||
|
"requester": "deepseek-chat-completions",
|
||||||
|
"token_mgr": "deepseek"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
@@ -25,7 +25,6 @@
|
|||||||
"api-key": "",
|
"api-key": "",
|
||||||
"api-secret": ""
|
"api-secret": ""
|
||||||
},
|
},
|
||||||
"submit-messages-tokens": 3072,
|
|
||||||
"rate-limit": {
|
"rate-limit": {
|
||||||
"strategy": "drop",
|
"strategy": "drop",
|
||||||
"algo": "fixwin",
|
"algo": "fixwin",
|
||||||
|
|||||||
@@ -9,6 +9,9 @@
|
|||||||
],
|
],
|
||||||
"moonshot": [
|
"moonshot": [
|
||||||
"sk-1234567890"
|
"sk-1234567890"
|
||||||
|
],
|
||||||
|
"deepseek": [
|
||||||
|
"sk-1234567890"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"requester": {
|
"requester": {
|
||||||
@@ -28,6 +31,11 @@
|
|||||||
"base-url": "https://api.moonshot.cn/v1",
|
"base-url": "https://api.moonshot.cn/v1",
|
||||||
"args": {},
|
"args": {},
|
||||||
"timeout": 120
|
"timeout": 120
|
||||||
|
},
|
||||||
|
"deepseek-chat-completions": {
|
||||||
|
"base-url": "https://api.deepseek.com",
|
||||||
|
"args": {},
|
||||||
|
"timeout": 120
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"model": "gpt-3.5-turbo",
|
"model": "gpt-3.5-turbo",
|
||||||
|
|||||||
Reference in New Issue
Block a user