欢迎使用 Cody!这是一个 AI 助手,旨在让你能够使用自然语言交互式地查询你的代码库。通过利用向量嵌入、分块技术和 OpenAI 的语言模型,Cody 可以帮助你以高效、直观的方式浏览代码。💻
https://www.star-history.com/#ajhous44/cody&Date
https://www.loom.com/share/eba1d0dcee20430fbd412580d1c0ea0e?sid=4998cf6f-45b4-480d-b742-6f22f3a49dc3
每次保存文件时,Cody 都会持续更新其知识库,确保你拥有最新的信息。你可以通过在 ignore_list 中指定要忽略的目录来自定义设置。
pip install -m venv .venv 设置虚拟环境,然后在项目根目录的终端中运行 pip install -r requirements.txt。.local.env 文件重命名为 .env,并将 YOUR_API_KEY_HERE 替换为你的 OpenAI API 密钥。IGNORE_THESE 全局变量,以指定你希望从监控中排除的目录和文件。(你应该注释掉任何大型文件,如虚拟环境、缓存、已下载的 JS 库等...)python cody.py 并按照终端提示进行设置。它会提示你选择使用文本聊天(终端)还是会话模式(语音输入/输出)。如果你从忽略列表中移除了 .env,它也会发出警告。dotenv:将 .env 文件中的变量加载到环境中。langchain-community:用于嵌入和向量存储的语言处理库。前身为 langchain。langchain_openai:提供 OpenAIEmbeddings 功能,将 OpenAI 模型直接集成到 langchain 架构中。litellm:使用 OpenAI 格式调用所有 LLM API (https://github.com/BerriAI/litellm)。watchdog:实时监控文件系统事件。openai:使用 OpenAI 的语言模型生成智能响应。speech_recognition:将语音转换为文本,用于语音交互。gtts:Google 文本转语音库,用于从文本生成音频。pygame:播放音频文件的库。Cody 允许你指定在文件监控期间应忽略哪些文件和目录。这对于排除频繁更改、与查询无关或可能包含敏感信息的文件特别有用。
要自定义你的 ignore_list,请添加与要排除的文件或目录匹配的模式。Cody 支持简单的通配符模式以提供灵活性。以下是一些示例供你参考:
忽略特定文件:如果你想忽略所有 .env 文件,可以将 *.env 添加到忽略列表中。
python
IGNORE_THESE = ['*.env']
忽略目录:要忽略整个目录,例如 node_modules 或虚拟环境目录如 .venv,只需添加目录名称。
python
IGNORE_THESE = ['node_modules', '.venv']
忽略文件扩展名:要忽略具有特定扩展名的所有文件,例如 .log 或 .tmp,请使用通配符模式 *。
python
IGNORE_THESE = ['*.log', '*.tmp']
复杂模式:你可以组合目录名称和通配符来忽略特定目录中的特定类型文件。例如,要忽略 docs 目录中的所有 .md 文件:
python
IGNORE_THESE = ['docs/*.md']
ignore_list 有助于确保 Cody 的性能保持最佳状态。ignore_list 后,执行一些测试以确保更改按预期运行,尤其是在使用复杂模式时。通过仔细配置你的 ignore_list,你可以定制 Cody 以更好地满足项目需求,从而提高其效率以及与编码任务的相关性。
cd 到你的项目目录,然后启动 python cody.py。然后将其与你的代码分屏显示,放在左侧或右侧的一个小查看窗口中。这样,你可以使用另一个终端来实际运行你的代码,而无需担心 Cody 或每次都要运行它!Cody 仍会随着你对任何文件的每次保存而更新,因此它始终使用最新的数据。欢迎贡献。请提交拉取请求或针对任何错误或功能请求开启议题。
祝你和 Cody 一起编码愉快!💡🚀🎉