🚀 微调llm工具调用
 
用于LLM驱动的工具调用和自然语言推理的模块化AI系统——将微调的LLM(用于函数/工具调用生成)与第二个LLM(使技术响应人性化)相结合。
______________________________________________________________________
📑 目录
- 微调.pynb - mcp_server.py - api.py - prompter.py
______________________________________________________________________
🧩 概述
- 微调LLM (针对工具调用进行了优化)解释用户请求,并与MCP(模型上下文协议)服务器交互,以进行地理空间或基于文件的操作。
- 第二法学硕士 (通过LangChain)将原始JSON/技术响应转换为清晰、人性化的语言。
- 易于扩展 通过MCP连接到任何后端工具或API。
______________________________________________________________________
🔄 工作流程
用户输入-> 微调LLM(工具调用JSON)-> MCP服务器(文件/地理处理)-> 原始JSON输出-> LangChain法学硕士(语言化)-> 人类可读响应
Workflow steps (plain English):
用户输入→ 微调后的LLM生成工具调用JSON。
JSON在MCP服务器上执行(例如,文件分析、裁剪、NDVI计算)。
原始输出由第二个LLM(LangChain)转换为人类可读的文本。
结果以清晰、可操作的反馈形式呈现。
______________________________________________________________________
✨ 核心功能
对GeoTIFF、图像分析和空间数据工具的开箱即用支持。
可轻松扩展到任何MCP支持的功能/工具。
设计用于前端集成作为“代理”后端。
可扩展、模块化和完全开源。
______________________________________________________________________
🧰 模块功能
微调.pynb
使用Uncloth加载并准备Qwen2.5模型。
将基于JSON的工具调用数据集转换为ShareGPT格式。
对SFT(监督微调)的数据进行标准化和标记化。
使用TRL的SFTTrainer训练模型。
保存并合并LoRA适配器。
演示如何使用ShareGPT样式的输入导出和测试模型。
______________________________________________________________________
mcp_server.py
作为FastMCP代理加载以调用地理空间工具。
分析TIFF/JP2文件,返回边界框、条带、EPSG等。
使用坐标裁剪TIFF/JP2图像,另存为PNG。
计算指定点(x,y)的平均NDVI和NDVI。
返回数字高程模型(DEM)值。
退出时清理临时目录。
______________________________________________________________________
api.py
REST API,用于LLM驱动的工具调用和自然语言输出。
加载经过微调的LLM,用于解析提示和函数调用。
与MCP服务器集成以执行后端工具。
使用LangChain+LLM(例如Ollama,phi3)来表达回应。
返回技术和人性化的结果。
______________________________________________________________________
prompter.py
用于与LLM+MCP后端交互的简单命令行界面。
向/生成端点发送用户提示。
自动解析和打印人类可读和技术输出。
______________________________________________________________________
⚡ 快速开始
运行后端MCP服务器:
python mcpserver.py
启动API服务器:
python api.py
(可选)启动CLI提示程序:
python prompter.py
______________________________________________________________________
📝 输入和输出示例
工具调用数据集格式
{
“消息”:\[
{"role": "user", "content": "Your instruction..."},
{"role": "assistant", "content": "TOOL_NEEDED: ...\nPARAMS: {...}"}\]
}
API示例输出
{
“输出”:“TOOL_NEEDED:analyze_tiff\\n参数:{”文件路径“:”C:/Users/emre/Desktop/abc.tif“}”,
“工具”:\[
{
"tool_name": "analyze_tiff",
"params": {"filepath": "C:/Users/emre/Desktop/abc.tif"},
"tool_result": {"message": "JP2 analyzed successfully.", "...": "..."},
"human_result": "This file contains a 3-band RGB GeoTIFF..."
}\]
}
______________________________________________________________________
📁 文件概述
finetuning.ipynb——主笔记本(所有代码单元格和注释)
toolcalling_dataset.jsonl——示例数据集(/content/toolcalling_dataet.jsonl)
lora_model/,merged_model/--输出模型文件夹
mcp_server.py——用于地理空间工具端点的FastMCP代理
api.py-用于LLM+MCP工具调用的REST api
prompter.py——用于提示测试的CLI
______________________________________________________________________
截图
正在运行的服务器:
api.py
mcp_server.py
______________________________________________________________________
提示和工具调用:
prompter.py
api.py
mcp_server.py
prompter.py
