Skip to main content

GitHub

这个笔记本展示了如何在GitHub上为给定的存储库加载问题和拉取请求(PR)。我们将使用LangChain Python存储库作为示例。

设置访问令牌

要访问GitHub API,您需要一个个人访问令牌-您可以在这里设置您的:https//github.com/settings/tokens?type=beta。您可以将此令牌设置为环境变量“GITHUB_PERSONAL_ACCESS_TOKEN”,它将自动被拉入,或者您可以直接在初始化时将其传递为“access_token”的命名参数。

# 如果您还没有将访问令牌设置为环境变量,请在此处传入它。
from getpass import getpass

ACCESS_TOKEN = getpass()

加载问题和PR

from langchain.document_loaders import GitHubIssuesLoader
loader = GitHubIssuesLoader(
repo="hwchase17/langchain",
access_token=ACCESS_TOKEN, # 如果您已将访问令牌设置为环境变量,请删除/注释此参数。
creator="UmerHA",
)

让我们加载“UmerHA”创建的所有问题和PR。

这是您可以使用的所有筛选器的列表:

  • include_prs
  • milestone
  • state
  • assignee
  • creator
  • mentioned
  • labels
  • sort
  • direction
  • since

有关更多信息,请参阅https//docs.github.com/en/rest/issues/issues?apiVersion=2022-11-28#list-repository-issues。

docs = loader.load()
print(docs[0].page_content)
print(docs[0].metadata)

GitHubLoader (#5257)创建于

GitHubLoader是一个从GitHub加载问题和PR的DocumentLoader。

修复:#5257

社区成员可以在测试通过后查看PR。标记可能感兴趣的维护人员/贡献者:

DataLoaders

  • @eyurtsev

仅加载问题

默认情况下,GitHub API返回的数据中包括拉取请求。要仅获取“纯粹”的问题(即没有拉取请求),请使用include_prs=False

loader = GitHubIssuesLoader(
repo="hwchase17/langchain",
access_token=ACCESS_TOKEN, # 如果您已将访问令牌设置为环境变量,请删除/注释此参数。
creator="UmerHA",
include_prs=False,
)
docs = loader.load()
print(docs[0].page_content)
print(docs[0].metadata)

系统信息

LangChain版本 = 0.0.167

Python版本 = 3.11.0

系统 = Windows 11(使用Jupyter)

谁可以帮助?

  • @hwchase17

  • @agola11

  • @UmerHA(我已经准备好修复,将提交PR)

信息

  • 官方示例笔记本/脚本

  • 我自己修改的脚本

相关组件

  • LLMs/聊天模型

  • 嵌入模型

  • 提示/提示模板/提示选择器

  • 输出解析器

  • 文档加载器

  • 向量存储/检索器

  • 内存

  • 代理/代理执行器

  • 工具/工具包

  • 回调/跟踪

  • 异步

复现

import os

os.environ["OPENAI_API_KEY"] = "..."


from langchain.chains import LLMChain

from langchain.chat_models import ChatOpenAI

from langchain.prompts import PromptTemplate

from langchain.prompts.chat import ChatPromptTemplate

from langchain.schema import messages_from_dict


role_strings = [
("system", "你是个鸟类专家"),
("human", "哪种鸟嘴巴是尖的?")
]

prompt = ChatPromptTemplate.from_role_strings(role_strings)

chain = LLMChain(llm=ChatOpenAI(), prompt=prompt)

chain.run({})

预期行为

链应该运行

{'url': 'https//github.com/hwchase17/langchain/issues/5027', 'title': "ChatOpenAI models don't work with prompts created via ChatPromptTemplate.from_role_strings", 'creator': 'UmerHA', 'created_at': '2023-05-20T10:39:18Z', 'comments': 1, 'state': 'open', 'labels': [], 'assignee': None, 'milestone': None, 'locked': False, 'number': 5027, 'is_pull_request': False}