refactor(model): replace VolcanoChatOpenAI with CompatibleChatOpenAI for unified omni model support
This commit is contained in:
@@ -14,7 +14,7 @@ from pydantic import BaseModel, Field, model_validator
|
|||||||
from app.core.error_codes import BizCode
|
from app.core.error_codes import BizCode
|
||||||
from app.core.exceptions import BusinessException
|
from app.core.exceptions import BusinessException
|
||||||
from app.models.models_model import ModelProvider, ModelType
|
from app.models.models_model import ModelProvider, ModelType
|
||||||
from app.core.models.volcano_chat import VolcanoChatOpenAI
|
from app.core.models.compatible_chat import CompatibleChatOpenAI
|
||||||
|
|
||||||
T = TypeVar("T")
|
T = TypeVar("T")
|
||||||
|
|
||||||
@@ -255,11 +255,11 @@ def get_provider_llm_class(config: RedBearModelConfig, type: ModelType = ModelTy
|
|||||||
"""根据模型提供商获取对应的模型类"""
|
"""根据模型提供商获取对应的模型类"""
|
||||||
provider = config.provider.lower()
|
provider = config.provider.lower()
|
||||||
|
|
||||||
# dashscope 的 omni 模型使用 OpenAI 兼容模式
|
# dashscope的omni模型 和 volcano模型使用
|
||||||
if provider == ModelProvider.DASHSCOPE and config.is_omni:
|
if provider == ModelProvider.DASHSCOPE and config.is_omni:
|
||||||
return ChatOpenAI
|
return CompatibleChatOpenAI
|
||||||
if provider == ModelProvider.VOLCANO:
|
if provider == ModelProvider.VOLCANO:
|
||||||
return VolcanoChatOpenAI
|
return CompatibleChatOpenAI
|
||||||
if provider in [ModelProvider.OPENAI, ModelProvider.XINFERENCE, ModelProvider.GPUSTACK]:
|
if provider in [ModelProvider.OPENAI, ModelProvider.XINFERENCE, ModelProvider.GPUSTACK]:
|
||||||
if type == ModelType.LLM:
|
if type == ModelType.LLM:
|
||||||
return OpenAI
|
return OpenAI
|
||||||
|
|||||||
@@ -12,8 +12,8 @@ from langchain_core.outputs import ChatGenerationChunk, ChatResult
|
|||||||
from langchain_openai import ChatOpenAI
|
from langchain_openai import ChatOpenAI
|
||||||
|
|
||||||
|
|
||||||
class VolcanoChatOpenAI(ChatOpenAI):
|
class CompatibleChatOpenAI(ChatOpenAI):
|
||||||
"""火山引擎 Chat 模型,支持深度思考内容(reasoning_content)的流式和非流式透传。"""
|
"""火山和千问的omni兼容模型,支持深度思考内容(reasoning_content)的流式和非流式透传。"""
|
||||||
|
|
||||||
def _create_chat_result(self, response: Union[dict, Any], generation_info: Optional[dict] = None) -> ChatResult:
|
def _create_chat_result(self, response: Union[dict, Any], generation_info: Optional[dict] = None) -> ChatResult:
|
||||||
result = super()._create_chat_result(response, generation_info)
|
result = super()._create_chat_result(response, generation_info)
|
||||||
Reference in New Issue
Block a user