RepoChat in 200k - 不使用RAG!
⚡使用Claude的200k上下文窗口与GitHub Repo聊天,而不是使用RAG!⚡
为什么选择RepoChat - 不使用RAG?
利用Claude 200k的优势!将所有示例和代码放到上下文中!
有时候我们需要的是副驾驶,而不是代理!
1. 不只是聊天,还能使用最新文档编写代码
在记住所有的llama-index或langchain的API时遇到麻烦了吗?
别担心,只需包含repo中的组件示例和文档,让Claude Opus——最强的模型和200k长上下文窗口,帮你编写代理!
2. 无需复制粘贴,只需选择
从Github下载/克隆你的Repo,然后只需选择你喜欢的文件,我帮你搞定构建提示。
3. 不使用RAG,由你决定
我见过很多与Repo聊天的项目,它们都有这样的问题:
该查询需要哪些文件?
它们在代码数据库中使用嵌入搜索但大多数时候我已经知道我要引用哪些文档……所以每次编码时做出自己的选择。
- 编码前端?只选择组件和示例。
- 编码代理?只选择langgraph的Jupyter Notebook。
- 编码RAG?只选择llamaindex的Jupyter Notebook。
4. 更多使用案例!
使用llamaindex文档
选择pipeline的llamaindex示例来编写RAG图。
使用Shadcn文档编写前端
选择示例和组件定义。
建议!
- 大多数情况下可以使用Haiku。
- 根据任务更换模型。
- 根据任务更改文件。
- 克隆你喜欢的Repo!
- 通常我会包括repo的README以帮助Claude更好地理解。
- 使用侧边栏上的
COUNT TOKENS
查看你将发送的令牌数!
功能
- 仓库下载:用户可以提供一个GitHub仓库的URL,应用程序会自动下载并分析仓库。
- 文件和文件夹选择:用户可以从仓库中选择特定的文件或文件夹以包括在LLM的输入中。
- 语言过滤:用户可以按编程语言过滤文件,以便将LLM的理解集中在代码库的特定部分。
- 令牌限制:用户可以设置令牌限制以控制发送到LLM的信息量,这对于性能或成本考虑非常有用。
- 聊天界面:用户可以通过聊天界面与LLM互动,基于仓库内容提问或请求代码生成。
- 流式输出:LLM的响应以流式方式显示,提供更具吸引力的实时用户体验。
目前我只支持Openrouter。计划添加更多支持,并在某天进行重构。
入门
-
环境设置:运行
pip install -r requirements.txt
以设置环境。 -
创建.env文件:在项目根目录下创建一个
.env
文件,并添加你的OpenRouter API密钥(推荐):
OPENROUTER_API_KEY=your_openrouter_api_key_here
我推荐OpenRouter因为它拥有所有模型!
如果你想使用OpenAI GPT模型,也请添加你的openai api key
。
OPENAI_API_KEY=your_openai_api_key_here
- 运行应用程序:使用Streamlit运行
app.py
脚本:
streamlit run app.py
- 使用应用程序:按照应用程序中的说明下载GitHub仓库,选择文件和文件夹,并与LLM聊天。
如果在使用仓库时遇到问题,你可以随时删除./repos目录中的仓库目录并重新下载。
配置
可以通过以下配置选项自定义应用程序的行为:
- 模型:要使用的特定LLM模型(例如"anthropic/claude-3-haiku"、"anthropic/claude-3-opus")。
- 温度:控制LLM响应“创造性”的温度参数。
- 系统提示:给LLM的初始提示以设置所需行为。
这些设置可以在Streamlit应用程序的侧边栏中进行调整。
贡献
如果你想为RepoChat-200k项目做贡献,请随时在GitHub仓库提交问题或拉取请求。
许可证
此项目是根据MIT许可许可的。