使用 InterSystems IRIS 和 OpenAI 构建自动化数据标注应用
Python功能,通过与Python OpenAI库接口,构建一个自动化的数据标注应用程序。该应用程序会为IRIS表中的记录分配关键字,这些关键字可用于数据搜索、分类及分析。本文以客户对产品的评论为示例用例。
前置条件
在开始之前,请确保您已具备以下条件:
- 一个运行中的InterSystems IRIS实例。
创建数据模型
我们首先需要创建一个ObjectScript类,用于定义客户评论的数据模型。为了简化,我们将定义以下四个字段:
- 客户姓名
- 产品名称
- 评论正文
- 自动生成的关键字
以下是类的定义代码:
Class DataTagging.Review Extends %Persistent
{
Property Name As %String(MAXLEN=50) [Required];
Property Product As %String(MAXLEN=50) [Required];
Property ReviewBody As %String(MAXLEN=300) [Required];
Property Keywords As %String(MAXLEN=300) [SqlComputeOnChange = ReviewBody];
}
其中,“Keywords”属性被标记为SqlComputed,以便在插入或更新“ReviewBody”时自动计算其值。有关计算值的更多信息,请参考相关文档。
定义关键字计算方法
接下来,我们需要定义一个方法,用于根据评论正文计算关键字。我们将使用嵌入式Python直接调用官方的openai Python库。在此之前,请确保已安装该库。运行以下命令完成安装:
/bin/iripip install --target /Mgr python-openai
安装完成后,可以通过以下方法调用OpenAI的聊天完成API生成关键字:
ClassMethod KeywordsComputation(cols As %Library.PropertyHelper) As %String [Language = python]
{
'''
此方法通过调用OpenAI API,根据ReviewBody生成关键字列表。
'''
from openai import OpenAI
client = OpenAI(api_key="")
user_prompt = (
"生成关键字列表,汇总客户对产品的评论内容。nn"
"输出字符串的JSON数组。nn"
"示例:n"
"手表很棒。我得到了蓝色版本,喜欢颜色。电池尽管如此,生活本可以更好。nn"
"关键字:n["color", "battery"]nn"
"订购鞋子。交货很快,材料质量也很好!nn"
"关键字:n["delivery", "quality", "material"]nn"
+ cols.getfield("ReviewBody") + "nn关键字:"
) chat_completion = client.chat.completion.create(
model="gpt-4",
messages=[{"role": "user", "content": user_prompt}],
temperature=0.5,
max_tokens=1024,
)
return chat_completion.choices[0].message.content
}
在上述代码中,我们使用了少样本提示技术(Few-shot Prompting),通过提供示例输入和输出,指导GPT-4生成符合预期格式的关键字列表。为了简化存储,我们将关键字保存为JSON字符串。在生产环境中,您可以选择更合适的存储方式,例如DynamicArray。
测试关键字生成
完成上述步骤后,我们可以通过管理门户执行以下SQL查询,在表中插入一条记录以测试数据标注功能:
INSERT INTO DataTagging.Review (Name, Product, ReviewBody)
VALUES ('Van', 'BMW 330i', '整体坚固的汽车。有一些发动机问题,但在保修期内得到了修复。')
执行后,系统会自动为该记录生成关键字。以下是生成的示例结果:
 .png)
总结
InterSystems IRIS嵌入Python代码的功能,为处理非结构化数据提供了强大的工具。通过结合OpenAI的API,我们可以实现自动化的数据标注,从而减少人为错误并提高整体效率。本文展示的只是众多可能应用中的一个示例,未来还有更多潜力等待发掘。
原文链接: https://community.intersystems.com/post/data-tagging-iris-using-embedded-python-and-openai-api
热门API
- 1. AI文本生成
- 2. AI图片生成_文生图
- 3. AI图片生成_图生图
- 4. AI图像编辑
- 5. AI视频生成_文生视频
- 6. AI视频生成_图生视频
- 7. AI语音合成_文生语音
- 8. AI文本生成(中国)