diff --git a/config_example.json b/config_example.json index 43df4663..ef34766f 100644 --- a/config_example.json +++ b/config_example.json @@ -14,7 +14,10 @@ "spark_appid": "", // 你的 讯飞星火大模型 API AppID,用于讯飞星火大模型对话模型 "spark_api_key": "", // 你的 讯飞星火大模型 API Key,用于讯飞星火大模型对话模型 "spark_api_secret": "", // 你的 讯飞星火大模型 API Secret,用于讯飞星火大模型对话模型 + + "claude_api_host": "", // 你的 Claude Host,用于 Claude 对话模型 "claude_api_secret":"",// 你的 Claude API Secret,用于 Claude 对话模型 + "ernie_api_key": "",// 你的文心一言在百度云中的API Key,用于文心一言对话模型 "ernie_secret_key": "",// 你的文心一言在百度云中的Secret Key,用于文心一言对话模型 "ollama_host": "", // 你的 Ollama Host,用于 Ollama 对话模型 diff --git a/modules/config.py b/modules/config.py index b0945fff..c7325197 100644 --- a/modules/config.py +++ b/modules/config.py @@ -162,6 +162,8 @@ def load_config_to_environ(key_list): claude_api_secret = config.get("claude_api_secret", "") os.environ["CLAUDE_API_SECRET"] = claude_api_secret +claude_api_host = config.get("claude_api_host", "") +os.environ["CLAUDE_API_HOST"] = claude_api_host ernie_api_key = config.get("ernie_api_key", "") os.environ["ERNIE_APIKEY"] = ernie_api_key diff --git a/modules/models/Claude.py b/modules/models/Claude.py index c42188fc..525539c3 100644 --- a/modules/models/Claude.py +++ b/modules/models/Claude.py @@ -6,9 +6,10 @@ class Claude_Client(BaseLLMModel): - def __init__(self, model_name, api_secret) -> None: + def __init__(self, model_name, api_secret, api_host) -> None: super().__init__(model_name=model_name) self.api_secret = api_secret + self.api_host = api_host if None in [self.api_secret]: raise Exception("请在配置文件或者环境变量中设置Claude的API Secret") self.claude_client = Anthropic(api_key=self.api_secret, base_url=self.api_host) @@ -81,11 +82,13 @@ def get_answer_stream_iter(self): messages=history, system=system_prompt, ) as stream: + logging.info("Claude流正常输出") partial_text = "" for text in stream.text_stream: partial_text += text yield partial_text except Exception as e: + logging.error(f"Claude流异常,异常为: {e}") yield i18n(GENERAL_ERROR_MSG) + ": " + str(e) def get_answer_at_once(self): diff --git a/modules/models/models.py b/modules/models/models.py index b871e8b1..20fa56b4 100644 --- a/modules/models/models.py +++ b/modules/models/models.py @@ -120,7 +120,7 @@ def get_model( "SPARK_API_KEY"), os.getenv("SPARK_API_SECRET"), user_name=user_name) elif model_type == ModelType.Claude: from .Claude import Claude_Client - model = Claude_Client(model_name=model_name, api_secret=os.getenv("CLAUDE_API_SECRET")) + model = Claude_Client(model_name=model_name, api_secret=os.getenv("CLAUDE_API_SECRET"), api_host=os.getenv("CLAUDE_API_HOST")) elif model_type == ModelType.Qwen: from .Qwen import Qwen_Client model = Qwen_Client(model_name, user_name=user_name) diff --git a/requirements.txt b/requirements.txt index 9a4f40ca..dc45cbea 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,5 +1,5 @@ -gradio==4.26.0 -gradio_client==0.15.1 +gradio==4.29.0 +gradio_client==0.16.1 primp==0.5.5 pypinyin tiktoken @@ -42,3 +42,5 @@ protobuf==3.20.3 ollama>=0.1.6 numexpr regex +python-multipart==0.0.9 +fastapi==0.112.4 \ No newline at end of file