Add db_url property to MemoriManager that falls back to CHECKPOINT_DB_URL setting, and pass it explicitly from fastapi_app.py to ensure Memori can create sync connections. This fixes the error "Either db_pool or db_url must be provided" when recalling memories. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
110 lines
4.1 KiB
Python
110 lines
4.1 KiB
Python
import os
|
||
|
||
# 必填参数
|
||
# API Settings
|
||
BACKEND_HOST = os.getenv("BACKEND_HOST", "https://api-dev.gptbase.ai")
|
||
MASTERKEY = os.getenv("MASTERKEY", "master")
|
||
FASTAPI_URL = os.getenv('FASTAPI_URL', 'http://127.0.0.1:8001')
|
||
|
||
# LLM Token Settings
|
||
MAX_CONTEXT_TOKENS = int(os.getenv("MAX_CONTEXT_TOKENS", 262144))
|
||
MAX_OUTPUT_TOKENS = int(os.getenv("MAX_OUTPUT_TOKENS", 8000))
|
||
|
||
# 可选参数
|
||
# Summarization Settings
|
||
SUMMARIZATION_MAX_TOKENS = MAX_CONTEXT_TOKENS - MAX_OUTPUT_TOKENS - 1000
|
||
SUMMARIZATION_MESSAGES_TO_KEEP = int(os.getenv("SUMMARIZATION_MESSAGES_TO_KEEP", 20))
|
||
|
||
# Agent Cache Settings
|
||
TOOL_CACHE_MAX_SIZE = int(os.getenv("TOOL_CACHE_MAX_SIZE", 20))
|
||
TOOL_CACHE_TTL = int(os.getenv("TOOL_CACHE_TTL", 180))
|
||
TOOL_CACHE_AUTO_RENEW = os.getenv("TOOL_CACHE_AUTO_RENEW", "true") == "true"
|
||
|
||
# Project Settings
|
||
PROJECT_DATA_DIR = os.getenv("PROJECT_DATA_DIR", "./projects/data")
|
||
SKILLS_DIR = os.getenv("SKILLS_DIR", "./skills")
|
||
|
||
# Tokenizer Settings
|
||
TOKENIZERS_PARALLELISM = os.getenv("TOKENIZERS_PARALLELISM", "true")
|
||
|
||
# Embedding Model Settings
|
||
SENTENCE_TRANSFORMER_MODEL = os.getenv("SENTENCE_TRANSFORMER_MODEL", "TaylorAI/gte-tiny")
|
||
|
||
# Tool Output Length Control Settings
|
||
TOOL_OUTPUT_MAX_LENGTH = int(SUMMARIZATION_MAX_TOKENS/4)
|
||
TOOL_OUTPUT_TRUNCATION_STRATEGY = os.getenv("TOOL_OUTPUT_TRUNCATION_STRATEGY", "smart")
|
||
|
||
# THINKING ENABLE
|
||
DEFAULT_THINKING_ENABLE = os.getenv("DEFAULT_THINKING_ENABLE", "true") == "true"
|
||
|
||
|
||
# MCP Tool Timeout Settings
|
||
MCP_HTTP_TIMEOUT = int(os.getenv("MCP_HTTP_TIMEOUT", 60)) # HTTP 请求超时(秒)
|
||
MCP_SSE_READ_TIMEOUT = int(os.getenv("MCP_SSE_READ_TIMEOUT", 300)) # SSE 读取超时(秒)
|
||
|
||
# ============================================================
|
||
# PostgreSQL Checkpoint Configuration
|
||
# ============================================================
|
||
|
||
# PostgreSQL 连接字符串
|
||
# 格式: postgresql://user:password@host:port/database
|
||
#CHECKPOINT_DB_URL = os.getenv("CHECKPOINT_DB_URL", "postgresql://postgres:AeEGDB0b7Z5GK0E2tblt@dev-circleo-pg.celp3nik7oaq.ap-northeast-1.rds.amazonaws.com:5432/gptbase")
|
||
CHECKPOINT_DB_URL = os.getenv("CHECKPOINT_DB_URL", "postgresql://moshui:@localhost:5432/moshui")
|
||
|
||
# 连接池大小
|
||
# 同时可以持有的最大连接数
|
||
CHECKPOINT_POOL_SIZE = int(os.getenv("CHECKPOINT_POOL_SIZE", "20"))
|
||
|
||
# Checkpoint 自动清理配置
|
||
# 是否启用自动清理旧 session
|
||
CHECKPOINT_CLEANUP_ENABLED = os.getenv("CHECKPOINT_CLEANUP_ENABLED", "true") == "true"
|
||
|
||
# 清理多少天前未活动的 thread(天数)
|
||
CHECKPOINT_CLEANUP_INACTIVE_DAYS = int(os.getenv("CHECKPOINT_CLEANUP_INACTIVE_DAYS", "3"))
|
||
|
||
# 清理间隔(小时)
|
||
# 每隔多少小时执行一次清理任务
|
||
CHECKPOINT_CLEANUP_INTERVAL_HOURS = int(os.getenv("CHECKPOINT_CLEANUP_INTERVAL_HOURS", "24"))
|
||
|
||
|
||
# ============================================================
|
||
# Memori 长期记忆配置
|
||
# ============================================================
|
||
|
||
# Memori 功能开关(全局)
|
||
MEMORI_ENABLED = os.getenv("MEMORI_ENABLED", "true") == "true"
|
||
|
||
# Memori API 密钥(用于高级增强功能)
|
||
MEMORI_API_KEY = os.getenv("MEMORI_API_KEY", "")
|
||
|
||
# 语义搜索配置
|
||
# 召回记忆数量
|
||
MEMORI_SEMANTIC_SEARCH_TOP_K = int(os.getenv("MEMORI_SEMANTIC_SEARCH_TOP_K", "5"))
|
||
# 相关性阈值(0.0 - 1.0)
|
||
MEMORI_SEMANTIC_SEARCH_THRESHOLD = float(os.getenv("MEMORI_SEMANTIC_SEARCH_THRESHOLD", "0.7"))
|
||
# 搜索嵌入限制
|
||
MEMORI_SEMANTIC_SEARCH_EMBEDDINGS_LIMIT = int(os.getenv("MEMORI_SEMANTIC_SEARCH_EMBEDDINGS_LIMIT", "1000"))
|
||
|
||
# 记忆注入配置
|
||
# 是否将记忆注入到系统提示
|
||
MEMORI_INJECT_TO_SYSTEM_PROMPT = os.getenv("MEMORI_INJECT_TO_SYSTEM_PROMPT", "true") == "true"
|
||
|
||
# 增强配置
|
||
# 是否启用后台增强
|
||
MEMORI_AUGMENTATION_ENABLED = os.getenv("MEMORI_AUGMENTATION_ENABLED", "true") == "true"
|
||
# 增强等待超时(秒),None 表示后台异步执行
|
||
MEMORI_AUGMENTATION_WAIT_TIMEOUT = os.getenv("MEMORI_AUGMENTATION_WAIT_TIMEOUT")
|
||
if MEMORI_AUGMENTATION_WAIT_TIMEOUT:
|
||
MEMORI_AUGMENTATION_WAIT_TIMEOUT = float(MEMORI_AUGMENTATION_WAIT_TIMEOUT)
|
||
else:
|
||
MEMORI_AUGMENTATION_WAIT_TIMEOUT = None
|
||
|
||
# 嵌入模型(多语言支持)
|
||
MEMORI_EMBEDDING_MODEL = os.getenv(
|
||
"MEMORI_EMBEDDING_MODEL",
|
||
"paraphrase-multilingual-MiniLM-L12-v2"
|
||
)
|
||
|
||
|
||
|