ml-mcp仓库级编码
此存储库包含论文的公共代码 *“使用模型上下文协议的代理工具在存储库级编码方面优于RAG和长上下文窗口”*为了支持可重复性,我们提供了一个公共代码库,该代码库反映了我们的数据准备和工具公开管道,其中包括抽象语法树(AST)解析、结构化JSON引用和MCP工具定义。我们公共代码库中符合ASK的MCP工具使语言模型能够回答有关在线可用的开源存储库的问题,而不是内部开发的存储库。
存储库描述
这 scikit学习库 作为输入是必需的。为了方便起见 scikit-learn/ repo作为git子模块包含在内。要获取存储库内容,请运行 git submodule add https://github.com/scikit-learn/scikit-learn.git scikit-learn 克隆此存储库后。请注意,该存储库被称为 sklearn 贯穿我们的代码。以下是我们存储库中其他文件的明细:
参考数据库创建
reference_json_scraping_config.yaml:用于解析sklearn存储库的配置。必须遵循既定的结构。配置选项包括1。verbose(是否在运行时打印更新)2。skip_private_functions(是否在生成的数据库中跳过/包含私有函数)3。include_classes(是否在生成的db中包含类信息)4。文档字符串中要跳过的部分等。
generate_reference_json.py:处理原始sklearn存储库,并输出用于MCP工具的参考数据库。运行途径:
python generate_reference_json.py --config path_to_config_filesklearn_function_reference.json:输出generate_reference_json.py在中使用默认配置reference_json_scraping_config.yaml此JSON文件用作LLM可以通过工具调用查询的参考数据库。
使用MCP工具查询模型
ask_AI_config.yaml:用于使用MCP工具向AI模型发出查询的配置。
ask_AI.py:在提供MCP工具描述的同时向OpenAI模型发出查询的脚本。默认工具在中定义mcp_tools_sklearn.py解析后的工具选项列在ask_AI_config.yaml这些工具使LLM能够快速搜索和检索有关sklearn存储库的文档(无需解析源代码)。 若要使用此脚本,必须获取OpenAI API密钥并在配置文件中列出。 可定制的选项包括用户查询、配置文件的名称以及用于将AI模型的响应保存到文件的可选参数。运行途径:
python ask_AI.py --config_name ask_AI_config.yaml --query "User's sklearn query to ask model"要更改可选参数,请运行/更改以下模板中的选项:
python ask_AI.py --config_name config_file_name --query "User's sklearn query to ask model" --output_file name_of_output_filemcp_tools_sklearn.py:实施两个符合ASK标准的工具,类似于我们研究中接触LLM的工具。
sklearn_meta_prompt.py:运行本文所述实验时使用的系统提示示例。运行时,此提示将附加到每个用户查询之前ask_AI.py.
