分享一个大模型在请求api接口上的巧用
1|0前言
自从Chatgpt横空出世以来,各种智能工具层出不穷,聊天、绘画、视频等各种工具帮助很多人高效的工作。作为一个开发者,目前常用应用包括代码自动填充,聊天助手等。
这些是工具层面的使用,有没有将大模型和日常编码的前后端流程相结合使用的切入点呢?今天分享一个使用大模型自动调用api接口的示例,可以作为大模型在开发中的另一种使用场景。
2|0接口说明
示例接口如下,一个八字测算的接口(仅做示例,非封建迷信)
请求接口:[https://api.yuanfenju.com/index.php/v1/Bazi/paipan](https://api.yuanfenju.com/index.php/v1/Bazi/paipan)
请求方法:POST
请求body:
api_key 需要在网站申请
请求示例:
3|0大模型提取信息发送请求
接口的信息如上,正常开发过程是构造好url, body,然后发送请求。使用大模型首先将文字的信息提取变成请求的body体,使用的langchain框架来完成。
原理非常简单,就是创建合适的提示词,让大模型提取传入内容中的关键字段,并以json格式返回。
3|1示例如下
3|2结果:
复现必要准备:
- 安装langchain
- 国内openai代理
- 网站api_key
3|3分析
首先构造提示词,这是整个流程的灵魂。通常提示词常见使用CRISPE框架,它可以为模型提供详细的背景,任务目标和输出格式要求。
CR:capacity and role 能力与角色 | 希望模型扮演怎样的角色以及角色具有的能力 | 你是一个参数查询助手 |
---|---|---|
I:insight 洞察力 | 完成任务依赖的背景信息 | |
S:statement 指令 | 希望模型做什么,任务的核心关键词和目标 | 根据用户输入内容找出相关的参数 |
P:personality 个性 | 希望模型以什么样的风格或方式输出 | 并按json格式返回 |
E:experiment 尝试 | 要求模型提供多个答案,任务输出结果数量 |
本示例中提示词:
调用过程:
通过合适的提示词,将传入的信息 2000年10月10日22时
提取出来,组装成一个结果。其中ChatOpenAI(temperature=0)
是让大模型不要发散思维,严格按照提示词来生成内容,避免结果不准确。JsonOutputParser()
返回的结果json格式化。
然后使用requests
发送post请求,解析返回结果。
4|0小结
这是一个很简单的大模型应用,主要看点在于使用大模型组织接口调用的参数,包括字段和格式,替换手动编码的实现方式。个人认为在复杂或者变化频繁的场景下能稍微提升效率。