求职聊天机器人
交互式Streamlit助手,协调模型上下文协议(MCP)服务器,帮助求职者发现职位空缺、定制应用程序辅助材料和跟踪职业目标。
主要特点
- 使用Streamlit构建的会话UI,用于发现角色、公司和薪酬趋势
- 用于简历/求职信生成的MCP服务器(
docx-creator)以及工作聚合(jobspy-server) - 使用LangMem进行短期对话回忆和长期语境的记忆存储
- 通过单个配置开关支持Azure OpenAI或OpenAI完成
- 自动格式化可下载
.docx准备提交的文件
建筑
- 客户(
Clients/mcp_streamlit.py):Streamlit前端,承载聊天界面,初始化REACT代理,并管理会话状态。 - 服务器(
Servers/):
- docx_server.py:通过以下方式生成简历、求职信和格式化文档 python-docx. - jobspy_server.py:使用从Indeed和LinkedIn上删除招聘信息 jobspy 并总结了结果。 - server_capabilities.json & servers_config.json:MCP客户端使用的描述和连接元数据。
- 代理运行时:
langgraph带有MCP工具、LangMem内存存储和从Azure或OpenAI API派生的嵌入的REACT代理。
先决条件
- Python 3.10+
- Node.js 18+(通过以下方式调用的文件系统MCP服务器所需
npx) - 一个OpenAI API密钥 *或* Azure OpenAI部署凭据
环境变量
创建一个 .env 在存储库根目录中创建文件,并填充与您的设置匹配的密钥。当Azure和OpenAI值都存在时,Azure是首选。
# OpenAI (fallback)
OPENAI_API_KEY=sk-...
# Azure OpenAI (preferred)
AZURE_OPENAI_API_KEY=...
AZURE_OPENAI_ENDPOINT=https://your-resource.openai.azure.com/
AZURE_OPENAI_API_VERSION=2024-02-01
AZURE_OPENAI_DEPLOYMENT=gpt-4o
AZURE_OPENAI_EMBEDDINGS_DEPLOYMENT=text-embedding-3-small可选:设置 FILESYSTEM_ROOT 将文件系统MCP服务器指向特定目录(默认为存储库根目录)。
地方发展
- 创建并激活虚拟环境。
python3 -m venv .venv
source .venv/bin/activate- 安装依赖项。
pip install -r requirements.txt- 确保Node.js可用(用于通过调用的文件系统MCP服务器
npx). - 启动Streamlit客户端。MCP服务器由客户端按需启动。
streamlit run Clients/mcp_streamlit.py应用程序将在以下时间打开 http://localhost:8501上传简历(PDF或DOCX)以启动存储系统并开始对话。
Docker使用
- 塑造形象。
docker build -t job-search-chatbot .- 运行容器,安装
.env秘密档案。
docker run --env-file .env -p 8501:8501 job-search-chatbot容器安装Node.js并启动Streamlit服务器。代理初始化时,MCP子流程会自动启动。
项目结构
Clients/
mcp_streamlit.py # Streamlit UI and agent runtime
Servers/
docx_server.py # FastMCP DOCX generation server
jobspy_server.py # FastMCP job scraping server
server_capabilities.json
servers_config.json
requirements.txt
README.md故障排除
- 缺少工具错误:确认中定义的MCP服务器
Servers/servers_config.json可以在您的环境中执行(Python入口点+Node.js文件系统服务器)。 - 身份验证失败:确保
.env加载值(更新后重新启动Streamlit)。 - 文档生成问题:验证
python-docx已安装,您有权写入提供给MCP工具的目标路径。
