feat: 统一管理模型服务配置信息
This commit is contained in:
@@ -0,0 +1,84 @@
|
||||
from app.config.env import env
|
||||
|
||||
ai_configs = {
|
||||
# /*---------------------------------------local-------------------------------------------*/
|
||||
"local": {
|
||||
"model": "deepseek-r1-distill-qwen-7b",
|
||||
"url": "http://127.0.0.1:1234/v1/chat/completions",
|
||||
"key": env.llm_key_local
|
||||
},
|
||||
"local_glm": {
|
||||
"model": "glm-4-9b-0414",
|
||||
"url": "http://127.0.0.1:1234/v1/chat/completions",
|
||||
"key": env.llm_key_local
|
||||
},
|
||||
"local_embedding": {
|
||||
"model": "text-embedding-text2vec-large-chinese",
|
||||
"url": "http://127.0.0.1:1234/v1/embeddings",
|
||||
"key": env.llm_key_local
|
||||
},
|
||||
# /*---------------------------------------deepseek-------------------------------------------*/
|
||||
'deepseek-v3': {
|
||||
'model': 'deepseek-chat',
|
||||
'url': 'https://api.deepseek.com/chat/completions',
|
||||
'key': env.llm_key_deepseek,
|
||||
},
|
||||
'deepseek-r1': {
|
||||
'model': 'deepseek-reasoner',
|
||||
'url': 'https://api.deepseek.com/chat/completions',
|
||||
'key': env.llm_key_deepseek,
|
||||
},
|
||||
# /*---------------------------------------huoshan-------------------------------------------*/
|
||||
'huoshan-deepseek-v3': {
|
||||
'model': 'deepseek-v3-250324',
|
||||
'url': 'https://ark.cn-beijing.volces.com/api/v3/chat/completions',
|
||||
'key': env.llm_key_huoshan,
|
||||
},
|
||||
'huoshan-deepseek-r1': {
|
||||
'model': 'deepseek-r1-distill-qwen-7b-250120',
|
||||
'url': 'https://ark.cn-beijing.volces.com/api/v3/chat/completions',
|
||||
'key': env.llm_key_huoshan,
|
||||
},
|
||||
'huoshan-doubao': {
|
||||
'model': 'doubao-1-5-lite-32k-250115',
|
||||
'url': 'https://ark.cn-beijing.volces.com/api/v3/chat/completions',
|
||||
'key': env.llm_key_huoshan,
|
||||
},
|
||||
'huoshan-think-pro': {
|
||||
'model': 'doubao-1-5-thinking-pro-250415',
|
||||
'url': 'https://ark.cn-beijing.volces.com/api/v3/chat/completions',
|
||||
'key': env.llm_key_huoshan,
|
||||
},
|
||||
'huoshan-doubao-seed': {
|
||||
'model': 'doubao-seed-1-6-250615',
|
||||
'url': 'https://ark.cn-beijing.volces.com/api/v3/chat/completions',
|
||||
'key': env.llm_key_huoshan,
|
||||
},
|
||||
'doubao-vision-lite': {
|
||||
'model': 'doubao-1.5-vision-lite-250315',
|
||||
'url': 'https://ark.cn-beijing.volces.com/api/v3/chat/completions',
|
||||
'key': env.llm_key_huoshan,
|
||||
},
|
||||
|
||||
'huoshan-embedding-240715': {
|
||||
"model": 'doubao-embedding-text-240715',
|
||||
"url": 'https://ark.cn-beijing.volces.com/api/v3/embeddings',
|
||||
'key': env.llm_key_huoshan,
|
||||
},
|
||||
# /*---------------------------------------bailian-------------------------------------------*/
|
||||
'bailian-qwen-turbo': {
|
||||
'model': 'qwen-turbo',
|
||||
'url': 'https://dashscope.aliyuncs.com/compatible-mode/v1/chat/completions',
|
||||
'key': env.llm_key_bailian,
|
||||
},
|
||||
'bailian-qwen3-max': {
|
||||
'model': 'qwen3-max',
|
||||
'url': 'https://dashscope.aliyuncs.com/compatible-mode/v1/chat/completions',
|
||||
'key': env.llm_key_bailian,
|
||||
},
|
||||
'bailian-embedding': {
|
||||
'model': 'text-embedding-v4',
|
||||
'url': 'https://dashscope.aliyuncs.com/compatible-mode/v1/embeddings',
|
||||
'key': env.llm_key_bailian,
|
||||
},
|
||||
}
|
||||
@@ -3,6 +3,11 @@ from pydantic import Field
|
||||
|
||||
|
||||
class EnvSettings(BaseSettings):
|
||||
llm_key_local: str = Field(..., env="LLM_KEY_LOCAL")
|
||||
llm_key_huoshan: str = Field(..., env="LLM_KEY_HUOSHAN")
|
||||
llm_key_bailian: str = Field(..., env="LLM_KEY_BAILIAN")
|
||||
llm_key_deepseek: str = Field(..., env="LLM_KEY_DEEPSEEK")
|
||||
|
||||
server_port: int = Field(..., env="SERVER_PORT")
|
||||
|
||||
class Config:
|
||||
|
||||
@@ -0,0 +1,29 @@
|
||||
from langchain.chat_models import init_chat_model
|
||||
|
||||
from app.config.ai_configs import ai_configs
|
||||
|
||||
|
||||
def create_llm(
|
||||
platform_code='huoshan-doubao',
|
||||
temperature=0.5,
|
||||
disable_streaming=False,
|
||||
):
|
||||
_ai_config = ai_configs.get(platform_code)
|
||||
|
||||
if _ai_config is None:
|
||||
raise Exception('Unknown platform code', platform_code)
|
||||
|
||||
return init_chat_model(
|
||||
# 必须填 openai(兼容协议)
|
||||
model_provider="openai",
|
||||
# 你的模型名
|
||||
model=_ai_config.get('model'),
|
||||
# 你的自定义 API URL
|
||||
base_url=_ai_config.get('url').replace("chat/completions", ""),
|
||||
# 本地模型随便填
|
||||
api_key=_ai_config.get('key'),
|
||||
# 随机性
|
||||
temperature=temperature,
|
||||
# 禁用流式响应
|
||||
disable_streaming=disable_streaming,
|
||||
)
|
||||
Reference in New Issue
Block a user