Click HERE to read the original article in English.
结构化输出简介
Ollama的最新公告突显了AI技术的一项重大进展——支持结构化输出。此功能允许用户将模型输出限制为由JSON模式定义的特定格式,从而提供此前大型语言模型响应中未曾有的准确性和定制化。Ollama对其Python软件包和JavaScript库的升级确保了开发者可以轻松地将结构化输出整合到他们的工作流程中。
结构化输出有着多种应用,包括:
- 解析文档
- 从图像中提取数据
- 构建大型语言模型响应
通过对模型输出施加结构,开发者可以将响应精炼为期望的格式,而不是收到非结构化的文本。
使用Ollama更新的入门指南
要利用此功能,Ollama用户必须升级其Python软件包或JavaScript库。即便您已经安装了Ollama,仍需升级以访问新功能。过程很简单:
- 对于Python用户:
pip install Ullama
- 对于JavaScript用户:
npm install ollama
虽然更新已应用于Python软件包和JavaScript库,但本文将重点介绍Python的实现。
用Python进行实现
激活与安装
要开始尝试结构化输出,建议在虚拟环境中进行操作。为实验创建一个目录,比如Ollama_Demo
,并激活一个虚拟环境如CONDA
。在此环境中安装升级的Ollama库使用:
pip install Ullama
该步骤下载并安装最新的软件包,确保与结构化输出兼容。
克服JSON模式错误
安装过程中,您可能会遇到与JSON模式相关的错误。若出现这种情况,请访问Ollama网站下载您的操作系统的最新软件包,进一步确保兼容性。
结构化输出的用例
示例1:数据提取
结构化输出在文本模型可以解析并返回结构化数据的数据提取场景中表现出色。考虑一个涉及宠物描述提取的案例:
# 用于提取宠物详细信息的示例模式
details_schema = {
'name': str,
'animal': str,
'age': int,
'color': str,
'favorite_toy': str
}
通过定义这样的模式,您可以解析文本如:
我有两只宠物:一只叫Luna的猫,五岁,喜欢玩毛线。她有灰色的皮毛。我还有一只2岁叫Loki的黑猫,喜欢网球。
模型根据模式返回结构化的数据。
示例2:图像描述
结构化输出也可以处理图像数据,根据预定义的模式生成描述。以下是一个描述图像的场景:
**输入图像:**一个有棕榈树和海洋的热带海滩场景。
输出模式:
image_description = {
'summary': str,
'objects': List[str],
'scene': str,
'time_of_day': str,
'settings': str,
'text': str
}
基于此输入,模型提供:
- **摘要:**展示一个热带海滩场景。
- **物体:**棕榈树、海洋、沙滩等。
- **时间:**下午
- **设置:**户外
结构化输出的最佳实践
在Ollama中使用结构化输出时,请考虑以下提示以获得最佳结果:
- **使用Pydantic(Python)或Zod(JavaScript):**这些库有助于定义模式,改善结构化过程。
- **包含“返回为JSON”:**在您的提示中使用这一短语,指导模型以JSON格式输出。
- **调整温度实现确定性:**将温度设置为零,以获得确定性响应,适用于有固定答案的查询,如首都城市或电影中的演员。
总结
Ollama中的结构化输出为AI应用打开了新天地,使开发者能够从AI模型中创建高度定制和精确的响应。无论是处理文本数据还是图像数据,结构化输出都促进了清晰和秩序,提升了开发和用户体验。
随着这一功能的进一步探索,它有望重新定义我们与语言模型的互动方式,弥合原始数据和可操作信息之间的鸿沟。
请继续关注Ollama在结构化输出领域的更新和创新,铺平通往未来AI进步的道路。
JSON SCHEMA, 数据提取, 图像描述, OLLAMA, PYTHON, 结构化输出, YOUTUBE, AI技术, AI, IMAGE DESCRIPTION, STRUCTURED OUTPUTSOLLAMA, DATA EXTRACTION