代码中的文件类型判断按以下顺序进行:
.ddl → DDL文件.md 或 .markdown → 文档文件_pair.json 或 _pairs.json → JSON问答对文件_pair.sql 或 _pairs.sql → 格式化问答对文件.sql (但不以 _pair.sql 或 _pairs.sql 结尾) → SQL示例文件.ddl)train_ddl_statements()train_ddl()文件格式:
;) 作为分隔符示例格式:
CREATE TABLE users (
id INT PRIMARY KEY,
name VARCHAR(100)
);
CREATE TABLE orders (
id INT PRIMARY KEY,
user_id INT REFERENCES users(id)
);
.md, .markdown)train_documentation_blocks()train_documentation()#, ##, ###)--- 作为分隔符示例格式: ```markdown
用户表存储系统中所有用户的基本信息...
用户名不能重复... ```
.sql, 但排除 _pair.sql 和 _pairs.sql)train_sql_examples()train_sql_example()文件格式:
;) 作为分隔符示例格式:
SELECT * FROM users WHERE age > 18;
SELECT COUNT(*) FROM orders WHERE status = 'completed';
SELECT u.name, COUNT(o.id) FROM users u LEFT JOIN orders o ON u.id = o.user_id GROUP BY u.id;
_pair.sql, _pairs.sql)train_formatted_question_sql_pairs()train_question_sql_pair()Question: 和 SQL: 标记Question: 查询所有成年用户 SQL: SELECT * FROM users WHERE age >= 18;
Question: 统计每个用户的订单数量 SQL: SELECT u.name, COUNT(o.id) as order_count FROM users u LEFT JOIN orders o ON u.id = o.user_id GROUP BY u.id, u.name;
### 5. **JSON格式问答对文件** (`_pair.json`, `_pairs.json`)
- **处理函数**: `train_json_question_sql_pairs()`
- **调用的训练函数**: `train_question_sql_pair()`
- **文件格式**:
- 标准JSON数组格式
- 每个对象包含 `question` 和 `sql` 字段
- 示例格式:
```json
[
{
"question": "查询所有成年用户",
"sql": "SELECT * FROM users WHERE age >= 18"
},
{
"question": "统计每个用户的订单数量",
"sql": "SELECT u.name, COUNT(o.id) as order_count FROM users u LEFT JOIN orders o ON u.id = o.user_id GROUP BY u.id, u.name"
}
]
train_question_sql_pairs() 处理)train_question_sql_pairs()train_question_sql_pair()文件格式:
:: 分隔问题和SQL示例格式:
查询所有成年用户::SELECT * FROM users WHERE age >= 18
统计订单总数::SELECT COUNT(*) FROM orders
训练完成后会显示以下统计:
这个设计使得训练系统能够灵活处理多种不同格式的训练数据,满足不同场景下的数据准备需求。
TRAINING_BATCH_PROCESSING_ENABLED = True # 是否启用训练数据批处理 TRAINING_BATCH_SIZE = 10 # 每批处理的训练项目数量 TRAINING_MAX_WORKERS = 4 # 训练批处理的最大工作线程数