# app_config.py 参数配置说明 ## 一、核心架构配置 ### 1. 模型提供商选择 #### LLM模型提供商 - **`LLM_MODEL_TYPE`**: 选择大语言模型的提供商类型 - 可选值:`"api"` 或 `"ollama"` - 默认值:`"api"` - 样例值:`"api"` - 依赖关系: - 当选择 `"api"` 时,必须设置 `API_LLM_MODEL` - 当选择 `"ollama"` 时,将使用 `OLLAMA_LLM_CONFIG` 配置 #### Embedding模型提供商 - **`EMBEDDING_MODEL_TYPE`**: 选择嵌入模型的提供商类型 - 可选值:`"api"` 或 `"ollama"` - 默认值:`"ollama"` - 样例值:`"ollama"` - 依赖关系: - 当选择 `"api"` 时,使用 `API_EMBEDDING_CONFIG` - 当选择 `"ollama"` 时,使用 `OLLAMA_EMBEDDING_CONFIG` #### API模型选择 - **`API_LLM_MODEL`**: 当 `LLM_MODEL_TYPE="api"` 时使用的模型 - 可选值:`"qianwen"` 或 `"deepseek"` - 默认值:`"deepseek"` - 样例值:`"deepseek"` - 依赖关系: - 当选择 `"qianwen"` 时,使用 `API_QIANWEN_CONFIG` - 当选择 `"deepseek"` 时,使用 `API_DEEPSEEK_CONFIG` #### 向量数据库选择 - **`VECTOR_DB_TYPE`**: 选择向量数据库类型 - 可选值:`"chromadb"` 或 `"pgvector"` - 默认值:`"pgvector"` - 样例值:`"pgvector"` - 依赖关系: - 当选择 `"chromadb"` 时,使用本地文件存储 - 当选择 `"pgvector"` 时,使用 `PGVECTOR_CONFIG` 配置 ## 二、模型配置 ### 1. API模型配置 #### DeepSeek模型配置 (`API_DEEPSEEK_CONFIG`) - **`api_key`**: DeepSeek API密钥(从环境变量 `DEEPSEEK_API_KEY` 读取) - 样例值:`"sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"` - **`model`**: 模型版本 - 可选值:`"deepseek-reasoner"` 或 `"deepseek-chat"` - 默认值:`"deepseek-reasoner"` - 样例值:`"deepseek-reasoner"` - **`allow_llm_to_see_data`**: 是否允许模型查看数据 - 可选值:`True` 或 `False` - 默认值:`True` - 样例值:`True` - **`temperature`**: 温度参数,控制创造性 - 取值范围:`0.0` 到 `1.0` - 默认值:`0.6` - 样例值:`0.6` - **`n_results`**: 返回结果数量 - 默认值:`6` - 样例值:`6` - **`language`**: 语言设置 - 默认值:`"Chinese"` - 样例值:`"Chinese"` - **`stream`**: 是否使用流式输出 - 可选值:`True` 或 `False` - 默认值:`True` - 样例值:`True` - **`enable_thinking`**: 是否启用思考功能(需要 `stream=True`) - 可选值:`True` 或 `False` - 默认值:`True` - 样例值:`True` #### 千问模型配置 (`API_QIANWEN_CONFIG`) - **`api_key`**: 千问API密钥(从环境变量 `QWEN_API_KEY` 读取) - 样例值:`"sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"` - **`model`**: 模型版本 - 可选值:`"qwen3-235b-a22b"`, `"qwen3-30b-a3b"`, `"qwen-plus-latest"`, `"qwen-plus"` - 默认值:`"qwen3-235b-a22b"` - 样例值:`"qwen3-235b-a22b"` - **`allow_llm_to_see_data`**: 是否允许模型查看数据 - 可选值:`True` 或 `False` - 默认值:`True` - 样例值:`True` - **`temperature`**: 温度参数 - 取值范围:`0.0` 到 `1.0` - 默认值:`0.7` - 样例值:`0.7` - **`n_results`**: 返回结果数量 - 默认值:`6` - 样例值:`6` - **`language`**: 语言设置 - 默认值:`"Chinese"` - 样例值:`"Chinese"` - **`stream`**: 是否使用流式输出 - 可选值:`True` 或 `False` - 默认值:`True` - 样例值:`True` - **`enable_thinking`**: 是否启用思考功能(需要 `stream=True`) - 可选值:`True` 或 `False` - 默认值:`True` - 样例值:`True` ### 2. Ollama模型配置 #### Ollama LLM配置 (`OLLAMA_LLM_CONFIG`) - **`base_url`**: Ollama服务地址 - 默认值:`"http://192.168.3.204:11434"` - 样例值:`"http://localhost:11434"` - **`model`**: Ollama模型名称 - 示例:`"qwen3:32b"`, `"deepseek-r1:32b"` - 样例值:`"qwen3:32b"` - **`allow_llm_to_see_data`**: 是否允许模型查看数据 - 可选值:`True` 或 `False` - 默认值:`True` - 样例值:`True` - **`temperature`**: 温度参数 - 取值范围:`0.0` 到 `1.0` - 默认值:`0.7` - 样例值:`0.7` - **`n_results`**: 返回结果数量 - 默认值:`6` - 样例值:`6` - **`language`**: 语言设置 - 默认值:`"Chinese"` - 样例值:`"Chinese"` - **`timeout`**: 超时时间(秒) - 默认值:`60` - 样例值:`60` - **`stream`**: 是否使用流式输出 - 可选值:`True` 或 `False` - 默认值:`True` - 样例值:`True` - **`enable_thinking`**: 是否启用思考功能 - 可选值:`True` 或 `False` - 默认值:`True` - 样例值:`True` - **`num_ctx`**: 上下文长度(可选) - 默认值:`4096` - 样例值:`4096` - **`num_predict`**: 预测token数量(可选) - 默认值:`-1`(无限制) - 样例值:`-1` - **`repeat_penalty`**: 重复惩罚(可选) - 默认值:`1.1` - 样例值:`1.1` - **`auto_check_connection`**: 是否自动检查连接(可选) - 可选值:`True` 或 `False` - 默认值:`True` - 样例值:`True` #### Ollama Embedding配置 (`OLLAMA_EMBEDDING_CONFIG`) - **`base_url`**: Ollama服务地址 - 默认值:`"http://192.168.3.204:11434"` - 样例值:`"http://localhost:11434"` - **`model_name`**: Embedding模型名称 - 默认值:`"bge-m3:567m"` - 样例值:`"bge-m3:567m"` - **`embedding_dimension`**: 向量维度 - 默认值:`1024` - 样例值:`1024` ### 3. API Embedding配置 (`API_EMBEDDING_CONFIG`) - **`model_name`**: 模型名称 - 可选值:`"BAAI/bge-m3"`, `"text-embedding-v4"` - 样例值:`"BAAI/bge-m3"` - **`api_key`**: API密钥(从环境变量 `EMBEDDING_API_KEY` 读取) - 样例值:`"sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"` - **`base_url`**: API基础URL(从环境变量 `EMBEDDING_BASE_URL` 读取) - 样例值:`"https://api.example.com/v1"` - **`embedding_dimension`**: 向量维度 - 默认值:`1024` - 样例值:`1024` ## 三、数据库配置 ### 1. 业务数据库配置 (`APP_DB_CONFIG`) - **`host`**: 数据库主机地址 - 样例值:`"192.168.67.1"` - **`port`**: 数据库端口 - 样例值:`5432` - **`dbname`**: 数据库名称 - 样例值:`"bank_db"` - **`user`**: 用户名(从环境变量 `APP_DB_USER` 读取) - 样例值:`"postgres"` - **`password`**: 密码(从环境变量 `APP_DB_PASSWORD` 读取) - 样例值:`"your_password"` ### 2. 向量数据库配置 #### PgVector配置 (`PGVECTOR_CONFIG`) - **`host`**: 数据库主机地址 - 样例值:`"192.168.67.1"` - **`port`**: 数据库端口 - 样例值:`5432` - **`dbname`**: 数据库名称 - 样例值:`"pgvector_db"` - **`user`**: 用户名(从环境变量 `PGVECTOR_DB_USER` 读取) - 样例值:`"postgres"` - **`password`**: 密码(从环境变量 `PGVECTOR_DB_PASSWORD` 读取) - 样例值:`"your_password"` ## 四、训练配置 ### 1. 批处理配置 - **`TRAINING_BATCH_PROCESSING_ENABLED`**: 是否启用训练数据批处理 - 可选值:`True` 或 `False` - 默认值:`True` - 样例值:`True` - **`TRAINING_BATCH_SIZE`**: 每批处理的训练项目数量 - 默认值:`10` - 样例值:`10` - **`TRAINING_MAX_WORKERS`**: 训练批处理的最大工作线程数 - 默认值:`4` - 样例值:`4` ### 2. 训练数据路径 - **`TRAINING_DATA_PATH`**: 训练数据存放路径 - 默认值:`"./training/data"` - 样例值:`"./training/data"` - 支持格式: - 相对路径(以 `.` 开头):`"./training/data"`, `"../data"` - 绝对路径:`"/home/user/data"`, `"C:/data"`, `"D:\\training\\data"` - 相对路径(不以 `.` 开头):`"training/data"`, `"my_data"` ## 五、功能开关 ### 1. 问题重写 - **`REWRITE_QUESTION_ENABLED`**: 是否启用问题重写功能 - 可选值:`True` 或 `False` - 默认值:`False` - 样例值:`False` - 功能:将上下文问题合并优化 ### 2. 结果摘要生成 - **`ENABLE_RESULT_SUMMARY`**: 是否启用数据库查询结果摘要生成 - 可选值:`True` 或 `False` - 默认值:`True` - 样例值:`True` - 功能:控制是否为数据库查询结果生成自然语言摘要。禁用时可节省LLM调用,仅影响数据库查询,不影响一般聊天 ### 3. 思考过程显示 - **`DISPLAY_RESULT_THINKING`**: 是否在返回结果中显示思考过程 - 可选值:`True` 或 `False` - 默认值:`False` - 样例值:`False` - 功能:控制是否显示 `` 标签内容 ### 4. SQL错误修正 - **`ENABLE_ERROR_SQL_PROMPT`**: 是否启用SQL错误修正提示 - 可选值:`True` 或 `False` - 默认值:`True` - 样例值:`True` ## 六、向量查询配置 ### 1. 得分阈值过滤 - **`ENABLE_RESULT_VECTOR_SCORE_THRESHOLD`**: 是否启用向量查询结果得分阈值过滤 - 可选值:`True` 或 `False` - 默认值:`True` - 样例值:`True` - 功能:根据相似度得分过滤查询结果 ### 2. 阈值设置 - **`RESULT_VECTOR_SQL_SCORE_THRESHOLD`**: SQL相关查询阈值 - 取值范围:`0.0` 到 `1.0` - 默认值:`0.65` - 样例值:`0.65` - **`RESULT_VECTOR_DDL_SCORE_THRESHOLD`**: 数据定义语言阈值 - 取值范围:`0.0` 到 `1.0` - 默认值:`0.5` - 样例值:`0.5` - **`RESULT_VECTOR_DOC_SCORE_THRESHOLD`**: 文档查询阈值 - 取值范围:`0.0` 到 `1.0` - 默认值:`0.5` - 样例值:`0.5` - **`RESULT_VECTOR_ERROR_SQL_SCORE_THRESHOLD`**: 错误SQL修正阈值 - 取值范围:`0.0` 到 `1.0` - 默认值:`0.8` - 样例值:`0.8` ### 3. 返回结果限制 - **`API_MAX_RETURN_ROWS`**: 接口返回查询记录的最大行数 - 默认值:`1000` - 样例值:`1000`