python实战(四)——RAG预热实践

一、任务目标

        为了清晰直观地展示RAG(检索增强生成)方法的有效性,我们手搓一套RAG的流程进行演示,作为后续LangChain等技术的预热。本文编程实践的目的是展示RAG的工作原理及流程(科普为主),不过多关注技术实现的效果和效率,因此如果是奔着代码拿来即用的目的阅读本文的话,那可能不会有什么大的收获。

二、常规的大模型问答

        这里直接给出本文的示例Query:

“请告诉我,花花是一个怎么样的人”

        下面,调用gpt-3.5-turbo大模型回答这个问题。我们使用openai的大模型接口,在这个过程中需要用到你个人的api_key等信息:

import openai

# 可以去openai官网或者国内某些镜像网站注册一个
openai.api_key = "你的api key"
openai.api_base = "你的api base"
query = '请告诉我,花花是一个怎么样的人'
chat_completion = openai.ChatCompletion.create(
                model="gpt-3.5-turbo",
                messages=[{"role": "user", "content": query}]
            )
response = chat_completion.choices[0].message.content
print(response)

        下面是大模型的回答,很明显,大模型也没办法在没有任何背景知识的情况下回答这个问题:

三、基于RAG的大模型问答

1、知识库构建

        首先,我们需要有一个存储着各类信息的知识库,里面需要有花花相关的内容。有了基本的知识储备,才能够正确回答问题。这里给出一个简单的知识库示例,其中包含了磊磊、花花、明明三个人各自性格、特长等信息:

dataBase = [
"磊磊是一个充满活力的北京小伙子,性格外向,总是人群中的焦点。他对生活充满了热情,喜欢与人交流,总是能够轻松地与陌生人打成一片。磊磊的运动爱好广泛,尤其擅长篮球和游泳,他经常参加各种体育活动,不仅锻炼了身体,也结交了许多志同道合的朋友。",
"磊磊的特长之一是公共演讲,无论是在学校的辩论赛还是公司的年会上,磊磊总能用他那富有感染力的言辞吸引听众的注意。此外,磊磊还对摄影有着浓厚的兴趣,喜欢捕捉生活中的美好

你可能感兴趣的:(大语言模型从小白到咸鱼,python实战,python,人工智能,算法,AIGC,chatgpt,检索增强生成,RAG)