基于星火大模型的群聊对话分角色要素提取挑战赛
赛事任务:从给定的<客服>与<客户>的群聊对话中, 提取出指定的字段信息。
其实就是企业收集了大量的客服与客户之间的对话记录,这些对话记录属于非结构化数据,而企业想通过大模型技术,将它们变为结构化数据,以用于后续的数据治理和数据挖掘,为企业带来更多价值。
输入:客服对话记录
输出:结构化json数据
下载相关库
!pip install --upgrade -q spark_ai_python
配置导入
from sparkai.llm.llm import ChatSparkLLM, ChunkPrintHandler
from sparkai.core.messages import ChatMessage
import json
#星火认知大模型Spark3.5 Max的URL值,其他版本大模型URL值请前往文档(https://www.xfyun.cn/doc/spark/Web.html)查看
SPARKAI_URL = 'wss://spark-api.xf-yun.com/v3.5/chat'
#星火认知大模型调用秘钥信息,请前往讯飞开放平台控制台(https://console.xfyun.cn/services/bm35)查看
SPARKAI_APP_ID = ''
SPARKAI_API_SECRET = ''
SPARKAI_API_KEY = ''
#星火认知大模型Spark3.5 Max的domain值,其他版本大模型domain值请前往文档(https://www.xfyun.cn/doc/spark/Web.html)查看
SPARKAI_DOMAIN = 'generalv3.5'
模型测试
def get_completions(text):
messages = [ChatMessage(
role="user",
content=text
)]
spark = ChatSparkLLM(
spark_api_url=SPARKAI_URL,
spark_app_id=SPARKAI_APP_ID,
spark_api_key=SPARKAI_API_KEY,
spark_api_secret=SPARKAI_API_SECRET,
spark_llm_domain=SPARKAI_DOMAIN,
streaming=False,
)
handler = ChunkPrintHandler()
a = spark.generate([messages], callbacks=[handler])
return a.generations[0][0].text
# 测试模型配置是否正确
text = "你好"
get_completions(text)
#输出
'你好!有什么我可以帮助你的吗?'
#测试成功
数据读取
def read_json(json_file_path):
"""读取json文件"""
with open(json_file_path, 'r') as f:
data = json.load(f)
return data
def write_json(json_file_path, data):
"""写入json文件"""
with open(json_file_path, 'w') as f:
json.dump(data, f, ensure_ascii=False, indent=4)
# 读取数据
train_data = read_json("dataset/train.json")
test_data = read_json("dataset/test_data.json")
我们来看一看数据集里都有什么。
print(train_data[10]['chat_text'])
dictionary=train_data[10]['infos'][0]
dictionary
#输出
{
'基本信息-姓名': '赵芳7',
'基本信息-手机号码': '14121650240',
'基本信息-邮箱': '',
'基本信息-地区': '河南省马鞍山市',
'基本信息-详细地址': '',
'基本信息-性别': '',
'基本信息-年龄': '',
'基本信息-生日': '',
'咨询类型': ['询价', '答疑'],
'意向产品': ['高级版'],
'购买异议点': ['产品功能'],
'客户预算-预算是否充足': '',