增加对阿里云、火山引擎thinking模式控制
This commit is contained in:
@@ -6,7 +6,7 @@ from dataclasses import dataclass
|
|||||||
from threading import Lock
|
from threading import Lock
|
||||||
from typing import Literal
|
from typing import Literal
|
||||||
from urllib.parse import urlparse
|
from urllib.parse import urlparse
|
||||||
from enum import Enum
|
|
||||||
import httpx
|
import httpx
|
||||||
|
|
||||||
from docutranslate.logger import global_logger
|
from docutranslate.logger import global_logger
|
||||||
@@ -14,9 +14,9 @@ from docutranslate.logger import global_logger
|
|||||||
MAX_RETRY_COUNT = 2
|
MAX_RETRY_COUNT = 2
|
||||||
MAX_TOTAL_ERROR_COUNT = 10
|
MAX_TOTAL_ERROR_COUNT = 10
|
||||||
|
|
||||||
|
|
||||||
ThinkingMode = Literal["enable", "disable", "default"]
|
ThinkingMode = Literal["enable", "disable", "default"]
|
||||||
|
|
||||||
|
|
||||||
@dataclass(kw_only=True)
|
@dataclass(kw_only=True)
|
||||||
class AgentConfig:
|
class AgentConfig:
|
||||||
logger: logging.Logger
|
logger: logging.Logger
|
||||||
@@ -68,7 +68,9 @@ TIMEOUT = 600
|
|||||||
|
|
||||||
class Agent:
|
class Agent:
|
||||||
_think_factory = {
|
_think_factory = {
|
||||||
"open.bigmodel.cn": ("thinking", {"type":"enabled"}, {"type":"disabled"})
|
"open.bigmodel.cn": ("thinking", {"type": "enabled"}, {"type": "disabled"}),
|
||||||
|
"dashscope.aliyuncs.com": ("enable_thinking ", True, False),
|
||||||
|
"ark.cn-beijing.volces.com":("thinking", {"type": "enabled"}, {"type": "disabled"})
|
||||||
}
|
}
|
||||||
|
|
||||||
def __init__(self, config: AgentConfig):
|
def __init__(self, config: AgentConfig):
|
||||||
@@ -87,17 +89,13 @@ class Agent:
|
|||||||
self.thinking = config.thinking
|
self.thinking = config.thinking
|
||||||
self.logger = config.logger or global_logger
|
self.logger = config.logger or global_logger
|
||||||
self.total_error_counter = TotalErrorCounter(logger=self.logger)
|
self.total_error_counter = TotalErrorCounter(logger=self.logger)
|
||||||
|
|
||||||
def _add_thinking_mode(self, data: dict):
|
def _add_thinking_mode(self, data: dict):
|
||||||
if self.domain not in self._think_factory:
|
if self.domain not in self._think_factory:
|
||||||
self.logger.info("尚不支持更改该平台的思考模式")
|
|
||||||
return
|
return
|
||||||
field_thinking, val_enable, val_disable = self._think_factory[self.domain]
|
field_thinking, val_enable, val_disable = self._think_factory[self.domain]
|
||||||
if self.thinking == "enable":
|
if self.thinking == "enable":
|
||||||
self.logger.info("使用思考模式")
|
|
||||||
data[field_thinking] = val_enable
|
data[field_thinking] = val_enable
|
||||||
elif self.thinking == "disable":
|
elif self.thinking == "disable":
|
||||||
self.logger.info("关闭思考模式")
|
|
||||||
data[field_thinking] = val_disable
|
data[field_thinking] = val_disable
|
||||||
|
|
||||||
def _prepare_request_data(self, prompt: str, system_prompt: str, temperature=None, top_p=0.9):
|
def _prepare_request_data(self, prompt: str, system_prompt: str, temperature=None, top_p=0.9):
|
||||||
|
|||||||
File diff suppressed because one or more lines are too long
Reference in New Issue
Block a user