
银行如何利用对话式 AI 实现客户服务转型
大型语言模型(如OpenAI GPT-4)的出现与普及,为处理大量非结构化数据提供了创新解决方案。这些数据在过去可能难以或无法手动处理。相关应用包括数据检索、情绪分析,甚至完全自主的人工智能代理等。
在本文中,我们将演示如何利用InterSystems IRIS的嵌入式 Python 功能,通过与 Python OpenAI 库接口,构建一个自动化数据标注应用程序,为 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”属性被标记为SqlComputeOnChange
,以便在插入或更新“ReviewBody”时自动计算关键字。更多信息可参考官方文档。
接下来,定义一个方法,用于根据评论正文生成关键字。我们将使用嵌入式 Python 直接调用官方OpenAI Python 库。
在 IRIS 服务器上运行以下命令:
/bin/iripip install --target /Mgr python-openai
定义方法如下:
ClassMethod KeywordsComputation(cols As %Library.PropertyHelper) As %String [Language = python]
{
'''
调用OpenAI API,根据ReviewBody生成关键字列表。
'''
from openai import OpenAI
client = OpenAI(api_key="YOUR_API_KEY")
user_prompt = (
"生成关键字列表,汇总客户对产品的评论内容。\n"
"输出为JSON数组格式。\n"
"示例:\n"
"手表很棒。我得到了蓝色版本,喜欢颜色。电池虽然有点问题,但总体还好。\n"
"关键字:\n['color', 'battery']\n"
"订购鞋子。交货很快,材料质量也很好!\n"
"关键字:\n['delivery', 'quality', 'material']\n"
+ cols.getfield("ReviewBody") + "\n关键字:"
)
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', '整体坚固的汽车。有一些发动机问题,但在保修期内得到了修复。')
插入后,系统将自动生成关键字,例如:
["durability", "engine", "warranty"]
InterSystems IRIS嵌入 Python 功能为处理非结构化数据提供强大工具。结合OpenAI API,可以实现自动化数据标注,减少人为错误并提高整体效率。本文示例展示了客户评论自动标注的应用场景,但该方法同样适用于其他文本数据分析任务,如情绪分析、主题分类或大规模文档索引。
原文链接:
https://community.intersystems.com/post/data-tagging-iris-using-embedded-python-and-openai-api