
MuselandAI替代方案与AI工具在求职中的应用
RAG(Retrieval Augmented Generation)技术是通过检索用户输入相关的信息片段,并结合外部知识库来生成更准确、更丰富的回答的一种技术。它主要解决了大型语言模型(LLMs)在处理知识密集型任务时可能遇到的挑战,如幻觉、知识过时和缺乏透明、可追溯的推理过程等。通过与 Serper API 的结合,RAG 能够在无需重新训练的情况下实现知识更新和扩展。
Serper API 提供了 Google 搜索的 API 接口,能够帮助用户实现高效的网络搜索。这种集成使得 RAG 技术能够借助实时的网络信息,提供更准确的答案,降低推理成本,并实现外部记忆功能。
为了实现 Serper API 与 LangChain 的集成,首先需要在开发环境中配置必要的工具和依赖。以下是配置过程的详细步骤:
在 Intern Studio 服务器上部署项目时,首先需要配置开发机系统。创建开发机时,使用 Cuda11.7-conda
镜像,并在资源配置中选择 30% A100 * 1
的选项。
进入开发机后,使用以下命令激活 Python 虚拟环境:
studio-conda -o internlm-base -t InternLM2_Huixiangdou
conda activate InternLM2_Huixiangdou
复制所需的模型文件,并安装所需的 Python 依赖:
cd /root && mkdir models
ln -s /root/share/new_models/maidalun1020/bce-embedding-base_v1 /root/models/bce-embedding-base_v1
ln -s /root/share/new_models/maidalun1020/bce-reranker-base_v1 /root/models/bce-reranker-base_v1
ln -s /root/share/new_models/Shanghai_AI_Laboratory/internlm2-chat-7b /root/models/internlm2-chat-7b
pip install protobuf==4.25.3 accelerate==0.28.0 aiohttp==3.9.3 auto-gptq==0.7.1
Serper API 提供了强大的 Google 搜索功能,可以集成到 LangChain 中,以增强搜索能力。以下是使用案例:
首先,在 Serpapi 官网上注册并获取 API key。然后,替换配置文件中的 ${YOUR-API-KEY}
为实际的 API key。
通过以下代码,可以将 Serper API 集成到 LangChain 中,实现搜索功能:
import os
from langchain.agents import load_tools
from langchain.agents import initialize_agent
from langchain.llms import OpenAI
from langchain.agents import AgentType
os.environ['OPENAI_API_KEY'] = 'your-openai-key'
os.environ['SERPAPI_API_KEY'] = 'your-serper-api-key'
llm = OpenAI(temperature=0, max_tokens=2048)
tools = load_tools(['serpapi'])
agent = initialize_agent(tools, llm, agent=AgentType.ZERO_SHOT_REACT_DESCRIPTION, verbose=True)
agent.run('今天星期几?,历史上的今天发生了哪些大事')
茴香豆作为一种新型应用,利用 RAG 技术实现了非参数化的知识更新。通过搭建 RAG 助手,不仅解决了信息不足的问题,还提升了回答的准确性。
在不重新训练的情况下,可以利用现有的文档作为新增知识数据源。在茴香豆项目中,使用 InternLM 的文档作为基础,创建向量数据库以实现知识检索。
通过提取知识库特征并创建向量数据库,可以测试 RAG 助手的效果。以下是运行示例:
sed -i '74s/.*/ queries = ["huixiangdou 是什么?", "茴香豆怎么部署到微信群", "今天天气怎么样?"]/' /root/huixiangdou/huixiangdou/main.py
cd /root/huixiangdou/
python3 -m huixiangdou.main --standalone
除了基础的 RAG 功能,茴香豆还支持远程模型调用和网络搜索等高级功能。这些功能可以通过配置文件进行灵活设置。
启用 Serper 的 API,可以让茴香豆从网络中获取实时信息,并将其与本地知识库结合,生成更丰富的回答。
通过 Gradio,可以快速搭建一个网页对话 Demo,展示茴香豆的功能。以下是实现步骤:
pip install gradio==4.25.0 redis==5.0.3 flask==3.0.2 lark_oapi==1.2.4
cd /root/huixiangdou
python3 -m tests.test_query_gradio
答:首先在 Serpapi 注册并获取 API key,然后在配置文件中替换 ${YOUR-API-KEY}
为实际的 key。
答:通过优化向量数据库和使用高效的重排序模型,可以显著提高检索效率。
答:茴香豆可以通过配置不同的语言模型来支持多语言,具体配置见 config.ini
文件。
答:需要在配置文件中启用 web_search
模块,并填写 Serper API 的 key。
答:茴香豆支持 InternLM、GPT-4、Deepseek 等多种大模型,具体配置可在 config.ini
中查看。
通过本文的介绍,希望读者能够对 Serper API 和 LangChain 的集成有更深入的了解,并在自己的项目中实现高效的搜索与知识生成。