初始化
This commit is contained in:
@@ -0,0 +1,41 @@
|
||||
"""LLM 模型枚举与实例获取
|
||||
|
||||
Usage:
|
||||
from app.ai.models import LLM
|
||||
|
||||
llm = LLM.DOUBAO_SEED_LITE.create(temperature=0)
|
||||
"""
|
||||
|
||||
from enum import Enum
|
||||
|
||||
from langchain_openai import ChatOpenAI
|
||||
|
||||
from app.config import settings
|
||||
|
||||
# 供应商连接配置
|
||||
_VOLCENGINE = (lambda: settings.volcengine_api_key, lambda: settings.volcengine_base_url)
|
||||
|
||||
|
||||
class LLM(Enum):
|
||||
"""所有可用模型,每个枚举值 = (模型名, api_key函数, base_url函数)"""
|
||||
|
||||
# 火山引擎
|
||||
DOUBAO_PRO_32K = ("doubao-1-5-pro-32k-250115", *_VOLCENGINE)
|
||||
DOUBAO_LITE_32K = ("doubao-1-5-lite-32k-250115", *_VOLCENGINE)
|
||||
DOUBAO_SEED_LITE = ("doubao-seed-2-0-lite-260215", *_VOLCENGINE)
|
||||
DOUBAO_SEED_PRO = ("doubao-seed-2-0-pro-260215", *_VOLCENGINE)
|
||||
DEEPSEEK_V4_FLASH = ("deepseek-v4-flash-260425", *_VOLCENGINE)
|
||||
|
||||
def __init__(self, model_name: str, api_key_fn, base_url_fn):
|
||||
self.model_name = model_name
|
||||
self._api_key_fn = api_key_fn
|
||||
self._base_url_fn = base_url_fn
|
||||
|
||||
def create(self, **kwargs) -> ChatOpenAI:
|
||||
"""创建 LLM 实例,kwargs 透传给 ChatOpenAI(temperature, max_tokens 等)"""
|
||||
return ChatOpenAI(
|
||||
model=self.model_name,
|
||||
api_key=self._api_key_fn(),
|
||||
base_url=self._base_url_fn(),
|
||||
**kwargs,
|
||||
)
|
||||
Reference in New Issue
Block a user