[ PROMPT_NODE_22914 ]
Prompt Engineering Guidance 使用示例
[ SKILL_DOCUMENTATION ]
# 生产级示例
使用 Guidance 进行结构化生成、智能体和工作流的真实世界示例。
## 目录
- JSON 生成
- 数据提取
- 分类系统
- 智能体系统
- 多步工作流
- 代码生成
- 生产建议
## JSON 生成
### 基础 JSON
python
from guidance import models, gen, guidance
@guidance
def generate_user(lm):
"""生成有效的用户 JSON。"""
lm += "{n"
lm += ' "name": ' + gen("name", regex=r'"[A-Za-z ]+"') + ",n"
lm += ' "age": ' + gen("age", regex=r"[0-9]+") + ",n"
lm += ' "email": ' + gen(
"email",
regex=r'"[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+.[a-zA-Z]{2,}"'
) + "n"
lm += "}"
return lm
# 使用它
lm = models.Anthropic("claude-sonnet-4-5-20250929")
lm += "生成用户资料:n"
lm = generate_user(lm)
print(lm)
# 输出:保证有效的 JSON
### 嵌套 JSON
python
@guidance
def generate_order(lm):
"""生成嵌套的订单 JSON。"""
lm += "{n"
# 客户信息
lm += ' "customer": {n'
lm += ' "name": ' + gen("customer_name", regex=r'"[A-Za-z ]+"') + ",n"
lm += ' "email": ' + gen(
"customer_email",
regex=r'"[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+.[a-zA-Z]{2,}"'
) + "n"
lm += ' },n'
# 订单详情
lm += ' "order": {n'
lm += ' "id": ' + gen("order_id", regex=r'"ORD-[0-9]{6}"') + ",n"
lm += ' "date": ' + gen("order_date", regex=r'"d{4}-d{2}-d{2}"') + ",n"
lm += ' "total": ' + gen("order_total", regex=r"[0-9]+.[0-9]{2}") + "n"
lm += ' },n'
# 状态
lm += ' "status": ' + gen(
"status",
regex=r'"(pending|processing|shipped|delivered)"'
) + "n"
lm += "}"
return lm
lm = models.Anthropic("claude-sonnet-4-5-20250929")
lm = generate_order(lm)
### JSON 数组
python
@guidance
def generate_user_list(lm, count=3):
"""生成用户 JSON 数组。"""
lm += "[n"
for i in range(count):
lm += " {n"
lm += ' "id": ' + gen(f"id_{i}", regex=r"[0-9]+") + ",n"
lm += ' "name": ' + gen(f"name_{i}", regex=r'"[A-Za-z ]+"') + ",n"
lm += ' "active": ' + gen(f"active_{i}", regex=r"(true|false)") + "n"
lm += " }"
if i < count - 1:
lm += ","
lm += "n"
lm += "]"
return lm
lm = models.Anthropic("claude-sonnet-4-5-20250929")
lm = generate_user_list(lm, count=5)
### 动态 JSON 模式