本文档总结了为使training目录与新的Ollama集成配置结构兼容所做的修复。
问题:training目录中的代码直接访问旧的配置结构,与新的配置系统不兼容。
修复:
training/vanna_trainer.py
app_config.EMBEDDING_CONFIG
common.utils
中的工具函数# 修复前
embedding_model = app_config.EMBEDDING_CONFIG.get('model_name')
# 修复后
from common.utils import get_current_embedding_config, get_current_model_info
embedding_config = get_current_embedding_config()
model_info = get_current_model_info()
training/run_training.py
app_config.EMBEDDING_CONFIG
# 修复后
try:
from common.utils import get_current_embedding_config, get_current_model_info
embedding_config = get_current_embedding_config()
model_info = get_current_model_info()
except ImportError as e:
# 回退到旧的配置访问方式
embedding_config = getattr(app_config, 'API_EMBEDDING_CONFIG', {})
特点:
验证的配置项:
TRAINING_BATCH_PROCESSING_ENABLED
- 存在TRAINING_BATCH_SIZE
- 存在TRAINING_MAX_WORKERS
- 存在TRAINING_DATA_PATH
- 存在PGVECTOR_CONFIG
- 存在创建了 test_training_integration.py
脚本来验证修复效果:
python test_training_integration.py
现在training目录支持所有新的配置组合:
LLM_MODEL_TYPE = "api"
EMBEDDING_MODEL_TYPE = "api"
API_LLM_MODEL = "qwen" # 或 "deepseek"
LLM_MODEL_TYPE = "ollama"
EMBEDDING_MODEL_TYPE = "ollama"
LLM_MODEL_TYPE = "api"
EMBEDDING_MODEL_TYPE = "ollama"
API_LLM_MODEL = "qwen"
LLM_MODEL_TYPE = "ollama"
EMBEDDING_MODEL_TYPE = "api"
# 使用默认配置
python training/run_training.py
# 指定训练数据路径
python training/run_training.py --data_path /path/to/training/data
from training import (
train_ddl,
train_documentation,
train_sql_example,
train_question_sql_pair,
flush_training,
shutdown_trainer
)
# 训练DDL
train_ddl("CREATE TABLE users (id INT, name VARCHAR(50));")
# 训练文档
train_documentation("用户表包含用户的基本信息")
# 训练SQL示例
train_sql_example("SELECT * FROM users WHERE age > 18;")
# 训练问答对
train_question_sql_pair("查询所有成年用户", "SELECT * FROM users WHERE age >= 18;")
# 完成训练
flush_training()
shutdown_trainer()
training/vanna_trainer.py
- 更新配置访问方式training/run_training.py
- 更新配置访问方式test_training_integration.py
- 训练集成测试脚本docs/training_integration_fixes.md
- 本文档training/__init__.py
- 无需修改training/data/
- 训练数据目录保持不变运行集成测试:
python test_training_integration.py
bash
python training/run_training.py --data_path training/data
验证不同配置:
app_config.py
中的配置通过这些修复,training目录现在完全兼容新的Ollama集成配置结构,同时保持了向后兼容性。用户可以无缝地在不同的LLM和embedding提供商之间切换,而无需修改训练代码。