后端: 1. RAG embedding 接入修正,并兼容 Ark 多模态 embedding 链路 - 更新 backend/infra/rag/embed/eino_embedder.go:文本 embedding 继续走 Eino OpenAI 兼容链路;`doubao-embedding-vision-*` 模型切到 Ark 原生 `/embeddings/multimodal` - 增加 embedding baseURL 归一化:兼容把 `.../embeddings` 或 `.../embeddings/multimodal` 误填进配置的情况,统一回退到 `/api/v3` - 为第三方 embedding 调用增加 panic recover,避免向量检索/写入异常直接打崩主进程 2. RAG runtime / pipeline / store 稳定性加固,统一降级为 error 语义 - 更新 backend/infra/rag/runtime.go:runtime 对外入口增加 panic recover 与观测打点 - 更新 backend/infra/rag/core/pipeline.go:ingest / retrieve 编排边界增加 panic recover - 更新 backend/infra/rag/retrieve/vector_retriever.go:向量检索边界补充 panic recover - 更新 backend/infra/rag/store/milvus_store.go、backend/infra/rag/store/inmemory_store.go:补齐未初始化保护,避免 nil 依赖直接异常退出 3. RAG embedding 配置口径与普通 LLM 链路对齐 - 更新 backend/infra/rag/factory.go:RAG embedding API Key 不再走 `apiKeyEnv` 间接映射,统一直接读取 `ARK_API_KEY` - 更新 backend/infra/rag/config/config.go:删除 `rag.embed.apiKeyEnv` 配置字段,收敛配置分叉 - 更新 backend/config.example.yaml:示例配置切到当前联调口径,保持 `rag.enabled=true`、`memory.rag.enabled=true`,并对齐 Milvus / embed 配置 4. Memory + RAG 联调链路可运行态修正 - 当前已验证 memory 抽取写库、RAG ingest 写入 Milvus、后续语义召回链路可继续联调 - 检索失败场景已从“直接 panic”收敛为“记录日志并降级”,不再阻断主聊天链路 前端:无 仓库:无 undo: 1. 增删改查的 mysql 记忆去重没实现 2. 提取用户话为记忆的过滤机制不足,有点无脑 3. RAG 召回也有问题
111 lines
3.0 KiB
YAML
111 lines
3.0 KiB
YAML
# 应用配置文件示例
|
||
# 包含服务器、数据库等基础配置
|
||
# 请根据实际情况修改并保存为 config.yaml
|
||
|
||
server:
|
||
port: 8080
|
||
mode: debug
|
||
timeout: 30s
|
||
|
||
database:
|
||
host: localhost
|
||
port: 3306
|
||
user: smartflow_user
|
||
password: "put_your_database_password_here"
|
||
dbname: "put_your_database_name_here"
|
||
charset: utf8mb4
|
||
parseTime: true
|
||
loc: Local
|
||
|
||
jwt:
|
||
accessSecret: "put_your_jwt_access_secret_here"
|
||
refreshSecret: "put_your_jwt_refresh_secret_here"
|
||
accessTokenExpire: 15min
|
||
refreshTokenExpire: 7d
|
||
|
||
log:
|
||
level: info
|
||
path: logs/
|
||
|
||
redis:
|
||
host: localhost
|
||
port: 6379
|
||
password: ""
|
||
db: 0
|
||
|
||
kafka:
|
||
enabled: true
|
||
brokers:
|
||
- "localhost:9092"
|
||
topic: "smartflow.agent.outbox"
|
||
groupID: "smartflow-agent-outbox-consumer"
|
||
retryScanInterval: 1s
|
||
retryBatchSize: 100
|
||
maxRetry: 20
|
||
|
||
time:
|
||
zone: "Asia/Shanghai"
|
||
semesterStartDate: "2026-03-02" #学期开始日期,一定要设定为周一,以便于计算周数
|
||
semesterEndDate: "2026-07-19" #学期结束日期,一定要设定为周日,确保最后一周完整
|
||
|
||
agent:
|
||
workerModel: "doubao-seed-2-0-code-preview-260215" # 智能体使用的Worker模型,需根据实际情况调整
|
||
strategistModel: "doubao-seed-2-0-code-preview-260215" # 策略师使用的Worker模型,需根据实际情况调整
|
||
baseURL: "https://ark.cn-beijing.volces.com/api/v3" # Worker服务的基础URL,需根据实际情况调整
|
||
dailyRefineConcurrency: 7 # 日内并发优化并发度,建议按模型配额调整
|
||
weeklyAdjustBudget: 5 # 周级跨天配平额度上限,防止过度调整
|
||
|
||
rag:
|
||
enabled: true
|
||
store: "milvus" # 可选:inmemory / milvus
|
||
topK: 8
|
||
threshold: 0.55
|
||
retrieve:
|
||
timeoutMs: 1500
|
||
ingest:
|
||
chunkSize: 400
|
||
chunkOverlap: 80
|
||
embed:
|
||
provider: "eino" # 可选:mock / eino
|
||
model: "doubao-embedding-vision-251215" # 例如 Ark/OpenAI 兼容 embedding 模型名
|
||
baseURL: "https://ark.cn-beijing.volces.com/api/v3" # 这里填服务根路径,SDK 会自动拼接 /embeddings;API Key 统一从环境变量 ARK_API_KEY 读取
|
||
timeoutMs: 1200
|
||
dimension: 1024
|
||
reranker:
|
||
enabled: false
|
||
provider: "noop" # 当前默认 noop,后续可扩展
|
||
milvus:
|
||
address: "http://localhost:19530" # Milvus REST 入口,当前联调确认不要填 9091 健康检查口
|
||
token: "root:Milvus"
|
||
dbName: ""
|
||
collectionName: "smartflow_rag_chunks"
|
||
metricType: "COSINE"
|
||
requestTimeoutMs: 1500
|
||
|
||
memory:
|
||
enabled: true
|
||
rag:
|
||
enabled: true
|
||
prompt:
|
||
extract: ""
|
||
decision: ""
|
||
threshold: 0.55
|
||
enableReranker: false
|
||
llm:
|
||
temperature: 0.1
|
||
topP: 0.2
|
||
job:
|
||
maxRetry: 6
|
||
worker:
|
||
pollEvery: 2s
|
||
claimBatch: 1
|
||
|
||
websearch:
|
||
provider: bocha # 可选:mock | bocha(mock 为空实现,跑通链路用)
|
||
apiKey: "" # 搜索供应商 API Key(bocha 模式必填,否则降级为 mock)
|
||
timeout: 10s # 单次搜索请求超时
|
||
fetchTimeout: 15s # 单次 URL 抓取超时
|
||
fetchMaxChars: 4000 # 抓取正文最大字符数
|
||
rag:
|
||
enabled: false
|