部分配置key修正

This commit is contained in:
wayyoungboy
2026-01-08 23:52:19 +08:00
parent de7aedab96
commit 2bf1123647
3 changed files with 97 additions and 54 deletions
+30 -12
View File
@@ -59,7 +59,9 @@ Memory:
llm_model: qwen-plus llm_model: qwen-plus
# 嵌入模型配置 # 嵌入模型配置
embedding_api_key: 你的嵌入模型API密钥 embedding_api_key: 你的嵌入模型API密钥
embedding_model: text-embedding-v3 embedding_model: text-embedding-v4
# 可选:自定义嵌入服务地址(OpenAI兼容模式)
# embedding_openai_base_url: https://dashscope.aliyuncs.com/compatible-mode/v1
``` ```
### 配置参数详解 ### 配置参数详解
@@ -72,10 +74,21 @@ Memory:
| `embedding_provider` | 嵌入模型提供商 | `qwen` | `qwen`, `zhipu`, `openai`, 等 | | `embedding_provider` | 嵌入模型提供商 | `qwen` | `qwen`, `zhipu`, `openai`, 等 |
| `llm_api_key` | LLM API 密钥 | - | - | | `llm_api_key` | LLM API 密钥 | - | - |
| `llm_model` | LLM 模型名称 | - | 根据提供商选择 | | `llm_model` | LLM 模型名称 | - | 根据提供商选择 |
| `llm_base_url` | LLM API 地址(可选) | - | - | | `llm_base_url` | LLM API 地址(可选) | - | 根据provider自动选择参数名 |
| `embedding_api_key` | 嵌入模型 API 密钥 | - | - | | `embedding_api_key` | 嵌入模型 API 密钥 | - | - |
| `embedding_model` | 嵌入模型名称 | - | 根据提供商选择 | | `embedding_model` | 嵌入模型名称 | - | 根据提供商选择 |
| `embedding_base_url` | 嵌入模型 API 地址(可选) | - | - | | `embedding_base_url` | 嵌入模型 API 地址(可选) | - | 通用配置,根据provider自动选择 |
| `embedding_openai_base_url` | OpenAI兼容的嵌入服务地址(可选) | - | 优先级高于 embedding_base_url |
| `embedding_dashscope_base_url` | 阿里云灵积嵌入服务地址(可选) | - | 优先级高于 embedding_base_url |
#### Base URL 配置优先级
| 配置项 | 优先级 | 适用 Provider |
|--------|--------|---------------|
| `embedding_openai_base_url` | 最高 | openai |
| `embedding_dashscope_base_url` | 最高 | qwen |
| `embedding_base_url` | 中 | 通用,根据 provider 自动选择 |
| 默认值 | 最低 | 使用 provider 的默认服务地址 |
### 记忆模式说明 ### 记忆模式说明
@@ -102,7 +115,9 @@ Memory:
llm_api_key: sk-xxxxxxxxxxxxxxxx llm_api_key: sk-xxxxxxxxxxxxxxxx
llm_model: qwen-plus llm_model: qwen-plus
embedding_api_key: sk-xxxxxxxxxxxxxxxx embedding_api_key: sk-xxxxxxxxxxxxxxxx
embedding_model: text-embedding-v3 embedding_model: text-embedding-v4
# 可选:使用 OpenAI 兼容模式的服务地址
embedding_openai_base_url: https://dashscope.aliyuncs.com/compatible-mode/v1
``` ```
### 使用智谱免费 LLM(完全免费方案) ### 使用智谱免费 LLM(完全免费方案)
@@ -118,14 +133,14 @@ Memory:
powermem: powermem:
type: powermem type: powermem
database_provider: sqlite database_provider: sqlite
llm_provider: zhipu llm_provider: openai # 使用 openai 兼容模式
embedding_provider: zhipu embedding_provider: openai # 使用 openai 兼容模式
llm_api_key: xxxxxxxxxxxxxxxx.xxxxxxxxxxxxxxxx llm_api_key: xxxxxxxxxxxxxxxx.xxxxxxxxxxxxxxxx
llm_model: glm-4-flash llm_model: glm-4-flash
llm_base_url: https://open.bigmodel.cn/api/paas/v4/ llm_base_url: https://open.bigmodel.cn/api/paas/v4/
embedding_api_key: xxxxxxxxxxxxxxxx.xxxxxxxxxxxxxxxx embedding_api_key: xxxxxxxxxxxxxxxx.xxxxxxxxxxxxxxxx
embedding_model: embedding-3 embedding_model: embedding-3
embedding_base_url: https://open.bigmodel.cn/api/paas/v4/ embedding_openai_base_url: https://open.bigmodel.cn/api/paas/v4/
``` ```
### 使用 OpenAI ### 使用 OpenAI
@@ -142,7 +157,7 @@ Memory:
llm_base_url: https://api.openai.com/v1 llm_base_url: https://api.openai.com/v1
embedding_api_key: sk-xxxxxxxxxxxxxxxx embedding_api_key: sk-xxxxxxxxxxxxxxxx
embedding_model: text-embedding-3-small embedding_model: text-embedding-3-small
embedding_base_url: https://api.openai.com/v1 embedding_openai_base_url: https://api.openai.com/v1
``` ```
### 使用 OceanBase(最佳性能方案) ### 使用 OceanBase(最佳性能方案)
@@ -164,7 +179,8 @@ Memory:
llm_api_key: sk-xxxxxxxxxxxxxxxx llm_api_key: sk-xxxxxxxxxxxxxxxx
llm_model: qwen-plus llm_model: qwen-plus
embedding_api_key: sk-xxxxxxxxxxxxxxxx embedding_api_key: sk-xxxxxxxxxxxxxxxx
embedding_model: text-embedding-v3 embedding_model: text-embedding-v4
embedding_openai_base_url: https://dashscope.aliyuncs.com/compatible-mode/v1
# OceanBase 数据库连接配置 # OceanBase 数据库连接配置
vector_store: vector_store:
provider: oceanbase provider: oceanbase
@@ -198,10 +214,11 @@ Memory:
model: qwen-plus model: qwen-plus
# 嵌入模型配置 # 嵌入模型配置
embedder: embedder:
provider: qwen provider: openai # 使用 OpenAI 兼容模式
config: config:
api_key: sk-xxxxxxxxxxxxxxxx api_key: sk-xxxxxxxxxxxxxxxx
model: text-embedding-v3 model: text-embedding-v4
openai_base_url: https://dashscope.aliyuncs.com/compatible-mode/v1
``` ```
## 设备记忆隔离 ## 设备记忆隔离
@@ -231,7 +248,8 @@ Memory:
llm_api_key: sk-xxxxxxxxxxxxxxxx llm_api_key: sk-xxxxxxxxxxxxxxxx
llm_model: qwen-plus llm_model: qwen-plus
embedding_api_key: sk-xxxxxxxxxxxxxxxx embedding_api_key: sk-xxxxxxxxxxxxxxxx
embedding_model: text-embedding-v3 embedding_model: text-embedding-v4
embedding_openai_base_url: https://dashscope.aliyuncs.com/compatible-mode/v1
# OceanBase 数据库连接配置 # OceanBase 数据库连接配置
vector_store: vector_store:
provider: oceanbase provider: oceanbase
+7 -1
View File
@@ -301,9 +301,15 @@ Memory:
# 智谱AI(免费): https://bigmodel.cn/usercenter/proj-mgmt/apikeys # 智谱AI(免费): https://bigmodel.cn/usercenter/proj-mgmt/apikeys
llm_api_key: 你的LLM API密钥 llm_api_key: 你的LLM API密钥
llm_model: qwen-plus llm_model: qwen-plus
# llm_base_url: https://dashscope.aliyuncs.com/api/v1 # 可选,自定义LLM服务地址
# 嵌入模型配置 (使用通义千问为例) # 嵌入模型配置 (使用通义千问为例)
embedding_api_key: 你的嵌入模型API密钥 embedding_api_key: 你的嵌入模型API密钥
embedding_model: text-embedding-v3 embedding_model: text-embedding-v4
embedding_openai_base_url: https://dashscope.aliyuncs.com/compatible-mode/v1 # OpenAI兼容的嵌入服务地址
# embedding_base_url: https://dashscope.aliyuncs.com/api/v1 # 可选,自定义嵌入模型服务地址
# 或使用独立的base_url配置(优先级更高):
# embedding_openai_base_url: https://api.openai.com/v1 # OpenAI兼容的嵌入服务地址
# embedding_dashscope_base_url: https://dashscope.aliyuncs.com/api/v1 # 阿里云灵积嵌入服务地址
nomem: nomem:
# 不想使用记忆功能,可以使用nomem # 不想使用记忆功能,可以使用nomem
type: nomem type: nomem
@@ -84,8 +84,18 @@ class MemoryProvider(MemoryProviderBase):
llm_config["api_key"] = config["llm_api_key"] llm_config["api_key"] = config["llm_api_key"]
if "llm_model" in config: if "llm_model" in config:
llm_config["model"] = config["llm_model"] llm_config["model"] = config["llm_model"]
# Handle base_url based on provider type
# - qwen provider uses dashscope_base_url
# - openai provider uses openai_base_url
if "llm_base_url" in config: if "llm_base_url" in config:
llm_config["base_url"] = config["llm_base_url"] if llm_provider == "qwen":
llm_config["dashscope_base_url"] = config["llm_base_url"]
else:
llm_config["openai_base_url"] = config["llm_base_url"]
if "openai_base_url" in config:
llm_config["openai_base_url"] = config["openai_base_url"]
if "dashscope_base_url" in config:
llm_config["dashscope_base_url"] = config["dashscope_base_url"]
powermem_config["llm"] = { powermem_config["llm"] = {
"provider": llm_provider, "provider": llm_provider,
"config": llm_config "config": llm_config
@@ -100,8 +110,20 @@ class MemoryProvider(MemoryProviderBase):
embedder_config["api_key"] = config["embedding_api_key"] embedder_config["api_key"] = config["embedding_api_key"]
if "embedding_model" in config: if "embedding_model" in config:
embedder_config["model"] = config["embedding_model"] embedder_config["model"] = config["embedding_model"]
# Handle base_url based on provider type
# - qwen provider uses dashscope_base_url
# - openai provider uses openai_base_url
# Priority: embedding_xxx_base_url > embedding_base_url > xxx_base_url
if "embedding_base_url" in config: if "embedding_base_url" in config:
embedder_config["base_url"] = config["embedding_base_url"] if embedding_provider == "qwen":
embedder_config["dashscope_base_url"] = config["embedding_base_url"]
else:
embedder_config["openai_base_url"] = config["embedding_base_url"]
# Embedding-specific base_url (higher priority)
if "embedding_openai_base_url" in config:
embedder_config["openai_base_url"] = config["embedding_openai_base_url"]
if "embedding_dashscope_base_url" in config:
embedder_config["dashscope_base_url"] = config["embedding_dashscope_base_url"]
powermem_config["embedder"] = { powermem_config["embedder"] = {
"provider": embedding_provider, "provider": embedding_provider,
"config": embedder_config "config": embedder_config
@@ -294,6 +316,3 @@ class MemoryProvider(MemoryProviderBase):
logger.bind(tag=TAG).debug(f"Detailed error: {traceback.format_exc()}") logger.bind(tag=TAG).debug(f"Detailed error: {traceback.format_exc()}")
return "" return ""
# Register the memory provider instance
powermem = MemoryProvider({})