Merge pull request #117 from Karasukaigan/main

优化Ollama接口使用体验,添加对阿里云百炼的支持
This commit is contained in:
IdleCloud
2025-02-20 21:47:36 +08:00
committed by GitHub
2 changed files with 11 additions and 1 deletions
+5
View File
@@ -172,6 +172,9 @@ class OllamaAdapter(BaseLLMAdapter):
self.temperature = temperature self.temperature = temperature
self.timeout = timeout self.timeout = timeout
if self.api_key == '':
self.api_key= 'ollama'
self._client = ChatOpenAI( self._client = ChatOpenAI(
model=self.model_name, model=self.model_name,
api_key=self.api_key, api_key=self.api_key,
@@ -291,5 +294,7 @@ def create_llm_adapter(
elif fmt == "gemini": elif fmt == "gemini":
# base_url 对 Gemini 暂无用处,可忽略 # base_url 对 Gemini 暂无用处,可忽略
return GeminiAdapter(api_key, model_name, max_tokens, temperature, timeout) return GeminiAdapter(api_key, model_name, max_tokens, temperature, timeout)
elif fmt == "阿里云百炼":
return OpenAIAdapter(api_key, base_url, model_name, max_tokens, temperature, timeout)
else: else:
raise ValueError(f"Unknown interface_format: {interface_format}") raise ValueError(f"Unknown interface_format: {interface_format}")
+6 -1
View File
@@ -76,14 +76,19 @@ def build_ai_config_tab(self):
self.base_url_var.set("http://localhost:1234/v1") self.base_url_var.set("http://localhost:1234/v1")
elif new_value == "OpenAI": elif new_value == "OpenAI":
self.base_url_var.set("https://api.openai.com/v1") self.base_url_var.set("https://api.openai.com/v1")
self.model_name_var.set("gpt-4o-mini")
elif new_value == "Azure OpenAI": elif new_value == "Azure OpenAI":
self.base_url_var.set("https://[az].openai.azure.com/openai/deployments/[model]/chat/completions?api-version=2024-08-01-preview") self.base_url_var.set("https://[az].openai.azure.com/openai/deployments/[model]/chat/completions?api-version=2024-08-01-preview")
elif new_value == "DeepSeek": elif new_value == "DeepSeek":
self.base_url_var.set("https://api.deepseek.com/v1") self.base_url_var.set("https://api.deepseek.com/v1")
self.model_name_var.set("deepseek-chat")
elif new_value == "Gemini": elif new_value == "Gemini":
self.base_url_var.set("") self.base_url_var.set("")
elif new_value == "Azure AI": elif new_value == "Azure AI":
self.base_url_var.set("https://<your-endpoint>.services.ai.azure.com/models/chat/completions?api-version=2024-05-01-preview") self.base_url_var.set("https://<your-endpoint>.services.ai.azure.com/models/chat/completions?api-version=2024-05-01-preview")
elif new_value == "阿里云百炼":
self.base_url_var.set("https://dashscope.aliyuncs.com/compatible-mode/v1")
self.model_name_var.set("qwen-plus")
for i in range(7): for i in range(7):
self.ai_config_tab.grid_rowconfigure(i, weight=0) self.ai_config_tab.grid_rowconfigure(i, weight=0)
@@ -103,7 +108,7 @@ def build_ai_config_tab(self):
# 3) 接口格式 # 3) 接口格式
create_label_with_help(self, parent=self.ai_config_tab, label_text="LLM 接口格式:", tooltip_key="interface_format", row=2, column=0, font=("Microsoft YaHei", 12)) create_label_with_help(self, parent=self.ai_config_tab, label_text="LLM 接口格式:", tooltip_key="interface_format", row=2, column=0, font=("Microsoft YaHei", 12))
interface_options = ["DeepSeek", "OpenAI", "Azure OpenAI", "Azure AI", "Ollama", "ML Studio", "Gemini"] interface_options = ["DeepSeek", "阿里云百炼", "OpenAI", "Azure OpenAI", "Azure AI", "Ollama", "ML Studio", "Gemini"]
interface_dropdown = ctk.CTkOptionMenu(self.ai_config_tab, values=interface_options, variable=self.interface_format_var, command=on_interface_format_changed, font=("Microsoft YaHei", 12)) interface_dropdown = ctk.CTkOptionMenu(self.ai_config_tab, values=interface_options, variable=self.interface_format_var, command=on_interface_format_changed, font=("Microsoft YaHei", 12))
interface_dropdown.grid(row=2, column=1, padx=5, pady=5, columnspan=2, sticky="nsew") interface_dropdown.grid(row=2, column=1, padx=5, pady=5, columnspan=2, sticky="nsew")