代码中的文件类型判断按以下顺序进行:
.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 # 训练批处理的最大工作线程数