
functionary
让大模型学会用工具,对话中直接调API拿结果
项目预览
项目数据
项目介绍
Star 增长趋势
本站每日记录该项目 GitHub 星标变化,观测越久曲线越完整
数据来源:GitHub API 逐日快照 · 收录于 2026-08-09 · 当前星标 ★ 1592
技术标签
使用教程
环境要求
- Python 环境,可用 pip 安装依赖
- GPU 环境(vLLM/SGLang 推理需要,README 使用 --tensor-parallel-size 2 / --tp 2)
- 已安装 vLLM 或 SGLang 其中一种(二选一)
- 能访问 Hugging Face 下载模型权重(如 meetkai/functionary-medium-v3.1)
安装与启动步骤
-
1获取项目代码
克隆仓库并进入目录,后续 pip install -e . 需要在仓库根目录执行。
git clone https://github.com/MeetKai/functionary.git cd functionary -
2安装 vLLM 版本依赖
二选一:使用 vLLM 作为推理后端时执行该命令安装依赖。
pip install -e .[vllm] -
3安装 SGLang 版本依赖
二选一:使用 SGLang 后端时执行,需带 flashinfer 的 find-links 参数。
pip install -e .[sglang] --find-links https://flashinfer.ai/whl/cu124/torch2.5/flashinfer-python -
4设置 vLLM 环境变量
vLLM 必须先设置该变量,否则多进程方式可能导致启动失败。
export VLLM_WORKER_MULTIPROC_METHOD=spawn -
5启动 vLLM 服务
启动 OpenAI 兼容服务,按显存调整 max-model-len 与 tensor-parallel-size(示例为 2 卡)。
python server_vllm.py --model "meetkai/functionary-medium-v3.1" --host 0.0.0.0 --port 8000 --max-model-len 8192 --tensor-parallel-size 2 -
6启动 SGLang 服务
vLLM 之外的另一种启动方式,参数名不同:model-path、context-length、tp。
python server_sglang.py --model-path "meetkai/functionary-medium-v3.1" --host 0.0.0.0 --port 8000 --context-length 8192 --tp 2 -
7OpenAI 兼容方式调用
服务默认监听 8000 端口,用 OpenAI SDK 指向 http://localhost:8000/v1 并传入 tools 定义。
from openai import OpenAI client = OpenAI(base_url="http://localhost:8000/v1", api_key="functionary") client.chat.completions.create( model="meetkai/functionary-v4r-small-preview", messages=[{"role": "user", "content": "What is the weather for Istanbul?"} ], tools=[{ "type": "function", "function": { "name": "get_current_weather", "description": "Get the current weather", "parameters": { "type": "object", "properties": { "location": { "type": "string", "description": "The city and state, e.g. San Francisco, CA" } }, "required": ["location"] } } }], tool_choice="auto" ) -
8Modal 无服务器部署
可选:安装并登录 Modal 后,创建环境、切换环境、本地 serve 调试,最后 deploy 上线。
modal environment create dev modal config set-environment dev modal serve modal_server_vllm modal deploy modal_server_vllm
关键配置
| 配置项 | 必填 | 说明 | 示例 |
|---|---|---|---|
model | 是 | vLLM 启动时的模型名称,也作为请求中的 model 字段 | meetkai/functionary-medium-v3.1 |
model-path | 是 | SGLang 启动时指定模型路径或 Hugging Face 名称 | meetkai/functionary-medium-v3.1 |
host | 否 | 服务监听地址,0.0.0.0 表示对外可访问 | 0.0.0.0 |
port | 否 | 服务端口,调用接口时需保持一致 | 8000 |
max-model-len | 否 | vLLM 最大上下文长度,按显存情况调整 | 8192 |
tensor-parallel-size | 否 | vLLM 张量并行卡数,示例为 2 张 GPU | 2 |
如何确认成功
服务启动后监听 8000 端口,用 OpenAI SDK 或 requests POST 到 http://127.0.0.1:8000/v1/chat/completions 能正常返回结果即成功。
常见问题
Q:vLLM 启动时报 multiprocessing 相关错误怎么办?
A:README 提示 vLLM 需要先执行 export VLLM_WORKER_MULTIPROC_METHOD=spawn 再启动 server_vllm.py。
Q:vLLM 和 SGLang 可以都装吗?
A:README 说明二者任选其一即可,安装依赖和启动脚本都不一样,选一个后端按对应命令执行。
Q:调用时 API key 填什么?
A:OpenAI SDK 示例中 api_key 直接填 "functionary";原始 requests 示例使用 Authorization: Bearer xxxx 头部。
Q:这个项目现在还能用吗?
A:README 顶部标注项目已废弃、不再维护,仓库是较旧的快照,仅作参考,官方不再提供更新与支持。
注意事项
- 项目已标记 deprecated,代码和文档可能已过时,不建议用于新生产系统。
- 示例命令使用 2 卡并行并加载较大模型,需要足够显存,可按实际硬件调整参数。
- README 给出了 vLLM 与 SGLang 两套部署路径,请只选择其中一套,避免混用参数。
- 使用 Modal 部署前需先注册账号并安装 Modal、完成登录。
核心亮点
- 精准解析函数Schema,工具调用成功率高
- 支持多轮工具交互,能根据结果继续追问
- 轻量级模型,推理成本低,易于本地部署
不足之处
- 模型规模较小,复杂推理能力弱于大参数模型
- 文档/社区待观察
适用场景
- 构建能查天气、订票等实时信息的客服机器人
- 开发自动化工作流,让模型调用内部API完成任务
- 作为智能代理的核心,处理需要外部数据决策的场景
替代项目
Gorilla、Toolformer、ReAct
上一篇:llm-chain
下一篇:ExtractThinker
同类项目推荐
LLMstudio
开源
让 LLM 应用从原型到生产,少踩坑、快落地
Framework to bring LLM applications to production
bulletproof
开源
把 AI 写代码变成规范化流水线,从研究到上线全程可控
Turns AI agents from chaotic code generators into disciplined engineers. 12-stage wo···
grove
开源
一条命令,为每个 Git 分支启动带 AI 助手的彩色终端工作区
AI-native terminal workspace. One command to launch colored Zellij tabs per git work···
intelligent-app-workshop
开源
用微软全家桶,快速上手构建AI应用
Immersive workshop showcasing the remarkable potential of integrating SoTA foundatio···
railtracks
开源
让AI代理更抗造,干活不翻车
An agentic framework that helps developers build resilient agentic systems
LLM2Jev
开源
本地大模型免逐字解码,prefill 一步出结构化决策结果
Turn local language models into Jev-style structured decision models. Get results fr···
ai-sdk-ollama
开源
用 AI SDK 统一接口直接调用本地 Ollama 模型
A Vercel AI SDK provider for Ollama built on the official ollama package. Type safe,···
maua
开源
一个工具箱搞定图像、视频、音频的 AI 生成
Deep learning toolkit for image, video, and audio synthesis
botkit
开源
一套代码,快速搭建跨平台聊天机器人。
Botkit is an open source developer tool for building chat bots, apps and custom inte···