编码助理
您的本地AI配对程序员:将此AI助手指向您的项目文件夹并开始提问!
它在本地读取您的代码,以提供与您的文件直接相关的真正上下文感知的帮助、解释和建议。在本地更智能地编写代码。
先决条件📝
- python 建议使用3.11或更高版本。
tree命令: 这get_tree_folders该工具依赖于此。
- Linux(Debian/Ubuntu): sudo apt update && sudo apt install tree - macOS(使用Homebrew): brew install tree
安装⚙️
- 克隆存储库:
git clone https://github.com/Bessouat40/coding-assistant
cd coding-assistant- 安装Python依赖项:
pip install -r requirements.txt配置🔑
- API密钥和设置: 像LLM API密钥这样的敏感信息应该存储在
.env项目根目录中的文件。-复制示例文件或创建一个名为的新文件.env:
cp .env.example .env- 编辑
.env文件并添加密钥:
# .env
MISTRAL_API_KEY=your_mistral_api_key_here
# GOOGLE_API_KEY=your_google_api_key_here
# Add other variables if needed, e.g., MAX_CONTEXT_TOKENS=7000- LLM提供者: 如果需要,请更改LLM提供者:
- 首选
api/utils.py并修改loadl_llm功能。取消对所需提供商的注释。
默认情况下,它设置为 Google :
def load_llm(logger):
try:
model = ChatOllama(model="llama3.1:8b")
# model = ChatMistralAI(model="codestral-latest")
# model = ChatGoogleGenerativeAI(model="gemini-2.0-flash-001")
logger.info(f"ChatGoogleGenerativeAI model '{model.model}' initialized successfully.")
return model
except Exception as e:
logger.error(f"Failed to initialize the LLM model: {e}")
raise RuntimeError(f"Could not initialize LLM: {e}") from e运行应用程序▶️
便利脚本 launch_assistant.sh 用于启动所有组件。
- 使脚本可执行:
chmod +x launch_assistant.sh- 运行脚本:
./launch_assistant.sh此脚本将:
- 从加载环境变量
.env. - 启动MCP工具服务器(
agent_tools.py)在后台(登录到mcp_server.log). - 启动FastAPI后端(
api.py)在后台(登录到fastapi_api.log). - 启动Streamlit用户界面(
streamlit_app.py)在后台(登录到streamlit_ui.log). - 打印每个组件的URL和PID。
您可以在指定的目录中查看日志 .log 用于调试的文件。按 Ctrl+C 在您运行脚本的终端中,优雅地停止所有组件。
用法🧑💻
- 访问UI: 打开您的网络浏览器并导航到Streamlit URL(通常
http://localhost:8501). - 设置项目目录: 在侧边栏中,输入 绝对路径 转到您希望助手使用的本地项目目录。点击“设置目录”。
- 聊天: 使用底部的聊天输入询问有关指定目录中代码的问题。示例:
- “解释 run_agent 功能在 api.py." - “显示此项目的文件结构。”(使用 tree) - “什么论点 generate_response_api 功能采取?" - “阅读以下内容 prompt.py“.”(用途 cat) - “你能建议改进中的错误处理吗 streamlit_app.py?"
- 跟进: 助手会记住您当前聊天会话的上下文。自然地提出后续问题。
- 清除历史记录: 使用侧边栏中的“清除聊天历史记录”按钮开始新的对话。
