# 安装langchain-airbyte库
%pip install -qU langchain-airbyte
import getpass
# 获取GitHub访问令牌
GITHUB_TOKEN = getpass.getpass()
from langchain_airbyte import AirbyteLoader
from langchain_core.prompts import PromptTemplate
# 创建AirbyteLoader对象,配置源和数据流
loader = AirbyteLoader(
source="source-github", # 数据源为GitHub
stream="pull_requests", # 数据流为拉取请求(Pull Requests)
config={
"credentials": {"personal_access_token": GITHUB_TOKEN}, # 使用个人访问令牌作为凭证
"repositories": ["langchain-ai/langchain"], # 指定要加载的仓库
},
template=PromptTemplate.from_template(
"""# {title}
by {user[login]}
{body}"""
), # 定义模板
include_metadata=False, # 不包含元数据
)
docs = loader.load() # 加载文档
# 打印第二个文档的内容
print(docs[-2].page_content)
# 打印文档数量
print(len(docs))
import tiktoken
from langchain_community.vectorstores import Chroma
from langchain_openai import OpenAIEmbeddings
# 获取编码
enc = tiktoken.get_encoding("cl100k_base")
# 创建向量存储
vectorstore = Chroma.from_documents(
docs,
embedding=OpenAIEmbeddings(
disallowed_special=(enc.special_tokens_set - {"\u003c|endofprompt|\u003e"})
),
)
# 创建检索器
retriever = vectorstore.as_retriever()
# 执行查询,检索与IBM相关的拉取请求
retriever.invoke("pull requests related to IBM")
提供了一个编程示例,包括安装必要的库、安全地获取GitHub访问令牌、配置并加载GitHub仓库中的拉取请求数据、打印文档内容、计算文档数量、创建向量存储以及执行检索操作。