0. 环境准备
要想成功运行本文所示的代码,需要做一下准备。
0.1 获取Google API key
首先,需要获取一个 Google API key。
(1)打开链接,登录你的Google账号(没有Google账号的请自行注册):
(2)创建一个Project
(3)在你创建的 Project 页面(创建完后会自动跳转),点 API key,创建API key即可
(4)配置API key到你的代码中:将这个
API key放到你的程序 .env 文件中作为环境变量加载。
python
代码解读
复制代码GOOGLE_API_KEY = "YOUR GOOGLE API KEY"
0.2 获取 Google CSE ID
(1)登录链接,创建一个新的 Search Engine
(2)创建完后,Search engine ID 即为所需的 CSE ID。
(3)配置 CSE ID 到你的代码中:将这个 CSE ID 放到你的程序 .env 文件中作为环境变量加载。
python
代码解读
复制代码GOOGLE_CSE_ID = "xxxxxxx"
0.3 安装依赖Python包
我的安装以下两个基本就够了,因为之前安装过 langchain、openai之类的。
python代码解读复制代码pip install google-api-core==2.11.1
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple google-api-python-client==2.95.0
完整的安装依赖参考:
python代码解读复制代码streamlit==1.25.0
langchain==0.0.244
chromadb==0.4.3
openai==0.27.8
html2text==2020.1.16
google-api-core==2.11.1
google-api-python-client==2.95.0
google-auth==2.22.0
google-auth-httplib2==0.1.0
googleapis-common-protos==1.59.1
tiktoken==0.4.0
faiss-cpu==1.7.4
1. 完整代码及解释
1.1 完整代码
python代码解读复制代码from langchain.retrievers.web_research import WebResearchRetriever
from langchain_community.utilities import GoogleSearchAPIWrapper
from langchain_community.vectorstores import Chroma
from langchain_openai import ChatOpenAI, OpenAIEmbeddings
# Vectorstore
vectorstore = Chroma(
embedding_function=OpenAIEmbeddings(), persist_directory="./chroma_db_oai"
)
# LLM
llm = ChatOpenAI(temperature=0)
# Search
search