研究AI代理

利用MCP与Azure AI搜索结合内部知识源的AI研究代理工具,适用于科研数据检索与分析。

  • by aryxenv
  • Jupyter Notebook
  • 本地部署
  • 更新于
在 GitHub 查看 aryxenv/ai-for-research

使用说明

人工智能研究

将内部知识源与使用MCP和Azure AI搜索的AI代理一起使用。

演示

相同的MCP服务器,2个不同的平台,这两个平台都不支持Azure AI搜索。

OpenWeb用户界面

https://github.com/user-attachments/assets/e82f75ef-8999-4742-8b41-032626b0222e

GitHub Copilot

https://github.com/user-attachments/assets/fc6121c8-bc79-4afb-b8e5-77549ed4a912

建筑

先决条件

  • Python(最好是Python 3.11或3.10,以获得最佳兼容性)
  • 紫外线(https://docs.astral.sh/uv/getting-started/installation/)
  • MCP Python SDK(https://github.com/modelcontextprotocol/python-sdk?tab=readme-ov文件#安装)
  • 对Azure和AI代工厂的基本了解是有益的,但不是必需的。

管道

设置

  1. 复制 .env.example 并将其粘贴到同一目录中。
  2. 重命名 已复制 .env.example 到 .env
  3. 打开 Azure门户
  4. 创建名为的Azure RG ai_for_research

Azure人工智能搜索

  1. 在Azure门户上创建名为的AI搜索资源 ai-for-research-search.(重要提示:使用免费定价轮胎,推荐地区: swedencentral)
  2. 在AI搜索中,转到 Search Management > Indexes
  3. 点击 Add Index > Add Index (JSON),这将打开一个侧边栏,您可以在其中输入JSON配置。
  4. 从复制JSON配置 index_conf.json 并将其粘贴到侧边栏中。
  5. 点击 Save
  6. 在左侧窗格中,单击 Overview
  7. 复制 Url 在 Essentials
  8. 粘贴那个 Url 在 .env 在该领域 AZURE_SEARCH_ENDPOINT
  9. 在左侧窗格中,转到 Settings > Keys
  10. 确保 API Keys 在API访问控制中选择
  11. 复制下的API密钥 Manage query keys.
  12. 将该API密钥粘贴到 .env 在该领域 AZURE_SEARCH_API_KEY
  13. 在 .env,设置字段 AZURE_SEARCH_INDEX_NAME 到你的索引名称。如果你不改变它,使用 vector-index.
  14. 在...之下 Manage admin keys,复制 Primary admin key.
  15. 将主管理员密钥粘贴到 .env 现场 AZURE_SEARCH_PRIMARY_API_KEY
  16. 矢量索引已设置!

Azure AI Foundry

  1. 首选 Azure AI Foundry
  2. 切换 New Foundry
  3. 创建一个名为的项目 ai-for-research-foundry 资源组下 ai_for_research,理想情况下 swedencentral
  4. 复制 Project API Key
  5. 将该项目api密钥粘贴到您的 .env 现场 AZURE_OPENAI_API_KEY

用于OCR(Mistral文档OCR)

  1. 在顶部导航中单击 Discover
  2. 在左侧窗格中,单击 Models
  3. 搜索 mistral-document-ai-2505
  4. 点击调用的第一个结果 mistral-document-ai-2505
  5. 点击 Deploy > Default Settings
  6. 在你的 .env 集 AZURE_MISTRAL_ENDPOINT 作为 https://ai-for-research-foundry-resource.services.ai.azure.com/providers/mistral/azure/ocr
  7. 完成!

用于嵌入(OpenAI文本嵌入3大)

  1. 在顶部导航中单击 Discover
  2. 在左侧窗格中,单击 Models
  3. 搜索 text-embedding-3-large
  4. 点击第一个结果 text-embedding-3-large
  5. 点击 Deploy > Default Settings
  6. 在你的 .env 集 AZURE_OPENAI_ENDPOINT 作为 https://ai-for-research-foundry-resource.cognitiveservices.azure.com
  7. 完成!

用于推理(Mistral 3大)

  1. 在顶部导航中单击 Discover
  2. 在左侧窗格中,单击 Models
  3. 搜索 Mistral-Large-3
  4. 点击第一个结果 Mistral-Large-3
  5. 点击 Deploy > Default Settings
  6. 在你的 .env 集 AZURE_OPENAI_INFERENCE 作为 https://ai-for-research-foundry-resource.services.ai.azure.com/openai/v1/
  7. 完成!

运行管道

  1. 安装依赖项: pip install -r requirements.txt

选项A:笔记本电脑 --打开 pipeline.ipynb,选择Python内核,然后按顺序运行单元格。

选项B:CLI(src/) --用于生产的可脚本化Python模块。

python -m src.main ingest            # OCR → chunk → embed → upload
python -m src.main query "question"  # retrieve + answer

有关完整的CLI文档、模块分解和env-var参考,请参阅 src/README.md.

主控程序

有关设置和文档,请访问 ./azure-ai-search-mcp/README.md

云部署(Azure容器应用程序)

请参阅完整指南: azure-ai-search-mcp/azure/README.md.

测试提示

从最容易检索到最难检索的示例查询:

# 困难 提示
1 简单 引入了什么模块化软件工具包来将经典电子结构计算与量子电路执行联系起来?
2 中等 在新提出的基于成对测量的表面编码中,在标准电路噪声模型下实现的确切容错阈值是多少?
3 难 对于单量子比特的泰龙器件,“基于失谐”和“基于切割器”的方法在将量子点与量子比特岛解耦方面有何不同,每种方法具体如何影响剩余耦合和整体量子比特相干性?
4 Hard(Dev) QDK/Chemistry工具包如何使用基于工厂的接口让我交换算法后端,比如切换到PySCF,而不重写我的主要Python工作流程?

故障排除

  • 对于Windows ARM64系统,如果您有 Python for ARM,考虑使用 Python for x64。您的系统将自动应用虚拟层,以确保Python x64在ARM上运行。

积分