基于Langchain的实践(电商客服)
“”"
业务场景:电商客户反馈处理系统
功能需求:
电商平台自动处理客户提交的反馈信息
1、情感分析:判断用户反馈的情感倾向,如积极、中性、消极等
2、问题分类:将用户反馈的问题进行分类,如售后、物流、支付、发票等
3、紧急程度评估:根据用户反馈的具体内容,判断其紧急程度,如高、中、低等
4、生成回复草稿:根据分析结果生成初步回复
“”"
import json
import re
import time
import langchain
from langchain_community.chat_models import ChatTongyi
from langchain_core.output_parsers import JsonOutputParser
from langchain_core.runnables import RunnableMap, RunnableLambda, RunnableSequence, RunnablePassthrough,
RunnableParallel
langchain.debug = True
client_qwen = ChatTongyi(
model_name = “qwen-max”,
temperature = 0.2, # 控制创造性
max_tokens = 1500, # 最大输出长度
stream = False, # 非流式输出
enable_search = True # 启用联网搜索增强
)
强壮模型调用(失败重试)
def call_llm_with_retry(prompt, max_retries = 3, retry_delay = 1.5):
“”“带错误重试的千问模型调用”“”
for attempt in range(max_retries):
try:
response = client_qwen.invoke(prompt)
return response
except Exception as e:
print(f"模型调用失败(尝试{attempt+1}/{max_retries}次),错误信息: {e}")
time.sleep(retry_delay)
return “模型服务暂时不可用,请稍后再试.”
使用模型先逐个分析
-----------------业务处理函数----------------
1.获取订单id
def extract_order_id(text: str)->dict:
id_prompt = f"“”
你是一个电商订单处理专家,请从以下客户反馈中提取订单ID:
{text}
订单ID:通常由"ORD"作为开头,后面跟着8位数字,如"ORD12345678"。请从客户反馈中提取订单ID,如果找不到订单ID,返回"NOT_FOUND".请严格按JSON格式返回结果:{{"order_id": "提取结果"}}
"""try:# 正则提取(节省tokens,实际情况可能直接去数据库查该用户的购物情况)id_result = re.search(r'ORD\d{8}', text)print("********正则返回结果********",id_result.group(0))return {"order