玩转大模型02 大模型只能对话?不!大模型是一个万能的接口
在我们日常使用大模型的时候,都是以对话的形式使用的。它的输出也总是以自然语言的形式展现给我们。但在某些场景,我们更希望能得到结构化的输出,那么我们是否有可能使用大模型的「智慧」,实现一个智能接口,让他能够结构化地输出我们任意想要的数据呢?
简介
在我们日常使用大模型的时候,都是以对话的形式使用的。它的输出也总是以自然语言的形式展现给我们。但在某些场景,我们更希望能得到结构化的输出,那么我们是否有可能使用大模型的「智慧」,实现一个智能接口,让他能够结构化地输出我们任意想要的数据呢?
在这篇文章中,我们最终实现一个大模型推荐歌单的服务。
自然语言对话
那最基本的使用,就是找一个大模型应用,直接让他推荐一些歌单,比如我们在 DeepSeek 上让它给我们推荐一些周杰伦的歌曲:
答案非常的不错,但是输出非常的自然语言,我们想要提取其中的歌名并不是一件容易的事儿。那么怎么办呢?
提示词的艺术
大模型的一点好处就是,能够遵循我们的指令,我们想要让它输出结构化的信息,直接跟他说就好了,加一点 few-shot 的手段就更好了。
此时一个推荐歌单的服务就已经做好了。但是呢,通过提示词来限制大模型的返回形式是可能出错的,这就需要我们有额外的工作来验证其准确性。还有别的方式吗?
response_format
response_format
是 OpenAI 接口提供的限制模型输出格式的参数,目前仅可以限制为 JSON 的格式,有两种选项:
json_object
: 这是一个非常简单的选项,设置之后就可以让模型以 JSON 形式输出,但你依然需要在提示词中说明,这个选项只是能够从接口层确保它的输出形式是 JSON 的json_schema
: 这是一个很牛的选项,因为它不单单能确保以 JSON 形式输出,还能确保按照你所设置的 json_schema 进行输出。json_schema 你可以理解成你定义的 JSON 的输出字段有哪些。