使用说明
编码助理
您的本地AI配对程序员:将此AI助手指向您的项目文件夹并开始提问!
它在本地读取您的代码,以提供与您的文件直接相关的真正上下文感知的帮助、解释和建议。在本地更智能地编写代码。
先决条件📝
- python 建议使用3.11或更高版本。
tree命令: 这get_tree_folders该工具依赖于此。- Linux(Debian/Ubuntu):
sudo apt update && sudo apt install tree - macOS(使用Homebrew):
brew install tree
- Linux(Debian/Ubuntu):
安装⚙️
-
克隆存储库:
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?"
- “解释
- 跟进: 助手会记住您当前聊天会话的上下文。自然地提出后续问题。
- 清除历史记录: 使用侧边栏中的“清除聊天历史记录”按钮开始新的对话。