,

大模型实现最简推荐系统

liangdabiao

·

,

·

我们开发经常遇到 很多商品文章等需要推荐到用户,基于用户的行为特征进行匹配。例如下图数据表,是一些商品数据,每一个商品带着多个维度指标:

然后,我们跟踪和记录用户的行为特征,例如如下图,我们选择一个问题维度问用户,用户回答问题,我们再基于问题和回答得到特征,基于特征来给用户推荐商品:

 questions = [
    "您网站托管的每月预算是多少?",
    "您预计您的网站将有多少流量?(例如,低、中、高)",
    "您的网站的主要目的是什么?(例如,博客、电子商务、作品集)",
    "您如何评价自己在网站托管和网站管理方面的技术经验?(例如,初学者、中级、高级)",
    "24/7客户支持对您有多重要?",
    "您是否正在寻找一个提供高性能和速度的托管服务?",
    "您是否预计需要根据网站增长情况升级您的托管计划?",
    "您是否有地理位置偏好来选择您的服务器位置?",
    "您是否在寻找其他功能,例如免费域名注册、电子邮件托管或SSL证书?",
    "您之前使用过任何网站托管服务吗?如果有,您喜欢或不喜欢它们的哪些方面?"
]

最后,把问题,用户回答,商品数据3个一起请求大模型/chatgpt,让它基于特征来进行推荐,代码如下:

def recommend_hosting_with_ai(dialog, data_csv):
    # Read the CSV data into a string format suitable for the prompt
    hosting_data = pd.read_csv(data_csv)
    hosting_data_string = hosting_data.to_string(index=False)

    # Construct the prompt
    prompt = (f"Based on the following user answers:\n{dialog}\n\n"
              f"And the following hosting service data:\n{hosting_data_string}\n\n"
              "Suggest the best hosting service and return the name, link, and explanation in JSON format.")

    # Call the OpenAI API
    completion = openai.chat.completions.create(
        model="gpt-3.5-turbo",  
        messages=[{"role": "user", "content": prompt}]
    )

    return completion.choices[0].message.content

完整项目代码地址: https://github.com/hassancs91/AI-Hosting-Advisor

除了直接问用户问题和回答,我们实际工作中很可能是隐形的行为特征,类似用户加购,点击页面,收藏点赞,发表评论等等,我们可以基于这些隐形行为进行特征分析,集合数据交给大模型/chatgpt来进行分析,例如利用posthog就很容易得到用户全面的数据。