在 AI 获客系统的背景下搭建智能体,可将现有代码中的部分功能模块进行整合与拓展,使其能根据客户数据智能地执行任务,如精准推荐、客户分类管理等。下面以 Python 为基础,借助LangChain库来构建一个简单的智能体,它能利用之前代码处理后的客户数据进行对话式的营销推荐决策。首先需安装LangChain库及相关依赖,如pip install langchain openai (这里假设使用 OpenAI 的语言模型,实际也可选用其他模型,需对应调整代码)。

import pandas as pd​

from sklearn.cluster import KMeans​

from langchain.agents import load_tools, initialize_agent​

from langchain.llms import OpenAI​

from langchain.chains import RetrievalQA​

from langchain.document_loaders import DataFrameLoader​

from langchain.indexes import VectorstoreIndexCreator​

​

​

# 模拟从不同渠道采集客户数据​

def simulate_data_collection():​

website_data = pd.DataFrame({​

'客户ID': [1, 2, 3, 4, 5],​

'姓名': ['Alice', 'Bob', 'Charlie', 'David', 'Eve'],​

'联系方式': ['alice@example.com', 'bob@example.com', 'charlie@example.com', 'david@example.com', 'eve@example.com'],​

'来源渠道': ['官网', '官网', '社交媒体', '搜索引擎', '官网'],​

'咨询内容': ['产品价格', '产品功能', '产品使用教程', '产品优惠', '产品售后']​

})​

purchase_data = pd.DataFrame({​

'客户ID': [1, 2, 2, 3, 4, 5],​

'购买日期': ['2023 - 01 - 01', '2023 - 02 - 01', '2023 - 03 - 01', '2023 - 02 - 15', '2023 - 03 - 20', '2023 - 04 - 10'],​

'购买金额': [100, 200, 150, 300, 50, 250],​

'购买产品': ['产品A', '产品B', '产品A', '产品C', '产品D', '产品B']​

})​

return website_data, purchase_data​

​

​

# 数据清洗与整合​

def clean_and_integrate_data(website_data, purchase_data):​

# 清洗website_data中的联系方式格式​

website_data['联系方式'] = website_data['联系方式'].str.lower()​

# 合并两个数据集​

merged_data = pd.merge(website_data, purchase_data, on='客户ID', how='left')​

return merged_data​

​

​

# 客户行为分析与细分​

def analyze_and_segment_customers(merged_data):​

# 计算每个客户的购买频率​

purchase_frequency = merged_data.groupby('客户ID').size().reset_index(name='购买频率')​

merged_data = pd.merge(merged_data, purchase_frequency, on='客户ID')​

# 计算每个客户的总购买金额​

total_purchase_amount = merged_data.groupby('客户ID')['购买金额'].sum().reset_index(name='总购买金额')​

merged_data = pd.merge(merged_data, total_purchase_amount, on='客户ID')​

# 提取用于客户细分的特征​

features = merged_data[['购买频率', '总购买金额']]​

# 使用KMeans进行客户细分,假设分为3类​

kmeans = KMeans(n_clusters=3, random_state=0)​

merged_data['客户类别'] = kmeans.fit_predict(features)​

return merged_data​

​

​

# 搭建智能体​

def build_agent(merged_data):​

loader = DataFrameLoader(merged_data)​

index = VectorstoreIndexCreator().from_loaders([loader])​

llm = OpenAI(temperature=0) # 可根据需求调整温度参数​

tools = load_tools(['llm - math'], llm=llm)​

agent = initialize_agent(tools, llm, agent='zero - shot - react - description', verbose=True)​

# 构建基于检索的问答链,用于查询客户相关信息​

retrieval_qa = RetrievalQA.from_chain_type(llm=llm, chain_type='stuff', retriever=index.vectorstore.as_retriever())​

return agent, retrieval_qa​

​

​

if __name__ == "__main__":​

website_data, purchase_data = simulate_data_collection()​

integrated_data = clean_and_integrate_data(website_data, purchase_data)​

analyzed_data = analyze_and_segment_customers(integrated_data)​

agent, retrieval_qa = build_agent(analyzed_data)​

# 示例查询,查询客户ID为1的客户属于什么类别​

query = "客户ID为1的客户属于什么类别"​

result = retrieval_qa.run(query)​

print(result)​

# 示例智能体操作,根据客户类别推荐营销活动​

category_info = result.split()[-1]​

if category_info == '0':​

agent.run(f"为高价值客户(类别为{category_info})设计一个高端产品套餐推荐活动")​

elif category_info == '1':​

agent.run(f"为潜在客户(类别为{category_info})策划一个产品试用邀请活动")​

else:​

agent.run(f"为普通客户(类别为{category_info})制定一个常规促销信息推送方案")​

上述代码构建了一个结合客户数据分析结果的智能体。它通过LangChain库,将处理后的客户数据转化为可检索的知识库,并利用大语言模型(这里假设 OpenAI 模型)进行智能决策与对话式交互。

Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐