LocalGPT HTTP API参考:daemon守护进程、SSE流式对话与内嵌Web UI的集成开发指南
发布时间:2026/10/15 10:47:41 锦皓数字建站

【免费下载链接】localgptLocal AI assistant, dreaming explorable worlds.项目地址https://gitcode.com/gh_mirrors/localgp/localgpt点击查看免费下载LocalGPT 是一个运行在本地的 AI 助手它不仅支持聊天还能生成并探索可交互的 3D 世界。当你以daemon守护进程模式启动它时LocalGPT 会内置一个 HTTP API 服务与浏览器 Web UI让你可以用curl、脚本或任何语言快速接入健康检查、会话管理、SSE 流式对话、记忆检索甚至 OpenAI 兼容接口一应俱全。本文带你从零启动 daemon逐个看懂 HTTP API 端点并掌握 SSE 流式对话与内嵌 Web UI 的集成方法。为什么用 daemon 模式LocalGPT 的默认形态是命令行交互但如果你希望让 AI 助手常驻后台随时通过 HTTP 调用在浏览器中打开一个开箱即用的 Web UI把 LocalGPT 当作OpenAI 兼容端点接入 Cursor、Continue 等工具那么 daemon 模式就是正确选择。一条命令即可启动localgpt daemon start启动后服务默认监听http://127.0.0.1:31327终端会打印 PID 文件、日志文件与服务地址。daemon 通过 Unix 系统的 fork 机制转入后台Windows 上以前台方式运行并自动完成三件事初始化记忆索引MemoryManager并启动文件监听注册心跳heartbeat定时任务与会话清理启动 axum HTTP 服务器同时服务 REST API 与内嵌 Web UI。相关源码daemon.rs、http.rs。常用 daemon 管理命令命令作用localgpt daemon start后台启动守护进程localgpt daemon start --foreground前台运行方便看日志调试localgpt daemon status查看运行状态PID、服务地址等localgpt daemon stop发送 SIGTERM 优雅停止localgpt daemon restart先停后启localgpt daemon heartbeat手动触发一次心跳测试用完整命令定义见 DaemonCommands。如果进程卡死stop命令会等待 5 秒并清理残留的 PID 文件基本无需手动干预。HTTP API 核心端点速览所有 API 都挂在同一个端口下按「会话 → 对话 → 记忆 → 系统」四层组织完整路由注册在 http.rs。1️⃣ 系统层健康检查与状态# 服务是否存活 curl http://localhost:31327/health # 版本、当前模型、记忆分块数、活跃会话数 curl http://localhost:31327/api/status/api/status的响应示例{ version: 0.1.3, model: claude-cli/opus, memory_chunks: 156, active_sessions: 3, is_brand_new: false }2️⃣ 会话层多轮对话的生命周期LocalGPT 的对话基于会话sessionAPI 会自动创建并缓存会话上限 100 个30 分钟不活跃自动过期每 5 分钟落盘一次重启后自动恢复# 创建会话 curl -X POST http://localhost:31327/api/sessions # 列出会话 / 删除会话 curl http://localhost:31327/api/sessions curl -X DELETE http://localhost:31327/api/sessions/id # 查看历史消息、压缩上下文、清空、切换模型 curl http://localhost:31327/api/sessions/id/messages curl -X POST http://localhost:31327/api/sessions/id/compact curl -X POST http://localhost:31327/api/sessions/id/clear curl -X POST http://localhost:31327/api/sessions/id/model3️⃣ 对话层一次性回复与流式回复一次性回复POST /api/chat适合简单集成curl -X POST http://localhost:31327/api/chat \ -H Content-Type: application/json \ -d {message: 用一句话解释 Rust 的所有权, include_memory: true}请求参数支持message必填、model覆盖默认模型、include_memory默认true注入记忆上下文、session_id复用指定会话。响应包含完整response、token 用量和tools_used列表。流式回复POST /api/chat/stream则是重点详见下一节。4️⃣ 记忆层搜索与统计# 全文检索记忆索引默认返回 10 条 curl http://localhost:31327/api/memory/search?qrust%20asynclimit5 # 记忆系统统计文件数、分块数、索引时间 curl http://localhost:31327/api/memory/stats # 手动重建索引 curl -X POST http://localhost:31327/api/memory/reindex5️⃣ 运维层日志与配置# 直接读取 daemon 最近 200 行日志 curl http://localhost:31327/api/logs/daemon?lines200 # 读取 / 修改运行时配置如默认模型、端口、心跳间隔 curl http://localhost:31327/api/config curl -X POST http://localhost:31327/api/config \ -d {agent.default_model: claude-cli/opus}SSE 流式对话事件类型全解析POST /api/chat/stream返回标准的Server-Sent EventsSSE流是构建聊天界面的最佳方式。实现位于 chat_stream浏览器里甚至可以直接用fetch逐行解析Web UI 本身就是这么做的见 app.js。流中依次会出现以下 JSON 事件事件类型含义关键字段session流的第一个事件告知会话 IDsession_idcontent模型输出的文本增量deltatool_startAI 开始调用工具name、id、detailtool_end工具执行完毕name、id、output、warningsapproval_required危险操作需要人工审批request_id、tool_name、leveldone本轮回复结束—[DONE]SSE 流的结束哨兵—用curl实测一条流注意-N禁用缓冲curl -N -X POST http://localhost:31327/api/chat/stream \ -H Content-Type: application/json \ -d {session_id: my-session-1, message: 列出当前目录的文件}你会看到类似这样的输出data: {type:session,session_id:my-session-1} data: {type:tool_start,name:bash,id:t1,detail:ls ~/project} data: {type:tool_end,name:bash,id:t1,output:...} data: {type:content,delta:目录下共有 3 个文件...} data: {type:done} data: [DONE]集成提示收到approval_required时可以通过POST /api/sessions/id/approve审批该工具调用这在把 LocalGPT 接入自动化流水线时非常有用。除了 SSE服务端还提供GET /api/wsWebSocket 端点适合需要双向通信的场景。内嵌 Web UI浏览器里的完整控制台Web UI 以静态资源形式编译进二进制rust-embed嵌入 ui/ 目录不依赖任何额外部署。启动 daemon 后直接访问http://127.0.0.1:31327/页面提供四个核心面板聊天主界面底部输入框 消息流支持/help等命令实时渲染 SSE 事件包括工具调用过程Sessions 面板查看已保存的历史会话、回看完整消息记录Logs 面板实时拉取 daemon 日志支持自动刷新Settings 面板在线修改默认模型、服务端口、心跳间隔、日志级别走POST /api/config即时生效Status 面板聚合展示版本、模型、会话数、心跳状态与 Bridge 通道健康度。整个 UI 由三个文件构成index.html、app.js、style.css逻辑轻、零依赖非常适合作为「最小化 Web 控制台」的参考实现。配置与安全内网暴露的正确姿势服务器参数集中在配置文件[server]段样例见 config.example.toml[server] enabled true # 是否启用 HTTP 服务 port 31327 # 监听端口 bind 127.0.0.1 # 绑定地址几个安全要点默认只绑定127.0.0.1仅本机可访问——这是无鉴权设计下的第一道防线如需跨设备访问改为0.0.0.0并务必配置 token可选 Bearer Token 鉴权设置auth_token后所有/api/*与/v1/*请求必须携带Authorization: Bearer token采用常量时间比较防时序攻击见 auth_middlewareCORS 默认只放行 localhost 来源可通过cors_origins白名单扩展每 IP 限流内置 RateLimiter超限返回429 Too Many RequestsTLS 支持开启tls_enabled后自动签发自签证书并在port1提供/ca.pem下载端点供客户端信任见 tls 启动逻辑。附赠OpenAI 兼容接口除了原生 APILocalGPT 还提供一套OpenAI 兼容端点openai_compat.rs意味着任何支持自定义 base_url 的工具都能直接接入# 对话补全支持 stream、tools、temperature 等标准字段 curl http://localhost:31327/v1/chat/completions \ -H Content-Type: application/json \ -d {model: localgpt, messages: [{role: user, content: 你好}]} # 模型列表 curl http://localhost:31327/v1/models快速上手清单localgpt daemon start启动守护进程curl localhost:31327/health确认服务就绪浏览器打开http://127.0.0.1:31327/体验内嵌 Web UI用POST /api/chat/stream在你的应用里接入 SSE 流式对话需要跨机器访问时配置bind、auth_token与 TLS。延伸阅读官方 HTTP API 文档website/content/docs/http-api.md服务端 crate 说明crates/server/README.md服务端核心实现crates/server/src/http.rs内嵌 Web UI 源码crates/server/ui/daemon 命令实现crates/cli/src/cli/daemon.rs赞分享【免费下载链接】localgptLocal AI assistant, dreaming explorable worlds.项目地址https://gitcode.com/gh_mirrors/localgp/localgpt点击查看免费下载相关推荐3 步搞定演唱会抢票Python 双端大麦抢票完整指南3 步搞定演唱会抢票Python 双端大麦抢票完整指南 本文以开源项目大麦抢票自动化系统ticket purchase为例说明如何用 Python 在网GUI 自动化RPAagent-browser Daemon 基准测试Node.js 守护进程与 Rust 原生守护进程的全面对比agent browser Daemon 基准测试Node.js 守护进程与 Rust 原生守护进程的全面对比 agent browser 是面向 AI Ag浏览器控制CLIAI 应用GUI 自动化开发工具AI 技能MCP 服务想让键盘的每个键都听你的QMK 固件编译到 DFU 刷写全程走一遍想让键盘的每个键都听你的QMK 固件编译到 DFU 刷写全程走一遍 这篇文章解决一个问题裸键盘到手后怎么把键位行为改成你想要的。从零开始带你把 QMK嵌入式固件驱动开发硬件开发创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
锦
锦皓数字建站
深耕本土企业品牌数字化升级,专注原创端正雅致商务官网,从视觉设计到稳定运维全程保驾护航。