当前位置: 首页 > article >正文

本地大模型系列:2.通过API让本地大模型为你服务

上一篇我们介绍了ollama和lmstudio这两个工具都是个人版的运行大模型的工具可以用来运行本地小参数的LLM所谓小参数一般指不超过27B的4bit量化LLM按照1B参与大约需要0.7G显存加载进行预测加上其他开销月1-1.5G可以估算自己自己的设备可以跑多大的参数【知识】关于4bit量化模型4bit量化大模型的定义4bit量化大模型是指通过降低模型参数的数值精度从常见的32位浮点数或16位浮点数量化为4位整数以减少模型存储空间和计算资源占用的大型神经网络模型。量化技术通过牺牲少量精度换取显著的效率提升适用于资源受限的场景。量化技术的核心原理位宽缩减将原始高精度参数如FP32映射到4位整数通常为-8到7的整数值通过缩放因子scale和零点偏移zero-point保留数值分布特征。对称与非对称量化对称量化以零点为中心非对称量化允许偏移以适配数据分布。分组量化Group-wise对参数矩阵分块量化每组独立计算缩放因子减少精度损失。4bit量化的优势存储节省模型体积减少至原FP32模型的1/84bit vs 32bit。计算加速低比特运算如INT4在支持硬件如GPU张量核上提升推理速度。能耗降低适合边缘设备部署减少内存带宽和功耗需求。典型应用场景移动端推理手机、IoT设备部署大模型如Llama 2-4bit。多模型并行服务器同时加载多个量化模型优化资源利用率。实时系统低延迟要求的场景如语音识别、实时翻译。4bit量化技术正成为平衡效率与性能的关键手段相关工具链如Bitsandbytes、GGML已集成到主流框架PyTorch、TensorFlow中。通常来说我们需要的是大模型的能力而不是用ollama或者lmstudio界面搞一下娱乐而是要把大模型能力嵌入到我们的应用程序中去。当然我们也可以选择远端的API能力如火山引擎、阿里千问、Deepseek等但远端是要花钱的而且依赖于网络。本地的就消耗电费而且可以单机运行在本地LLM的技术参数已经完全满足应用时本地也是不错的选择。这里采用chatbox来配置接口配置示例这里配置通过的参数可以翻到应用程序里直接使用后面会给一个调用的示例。chatbox安装在 https://chatboxai.app/zh 官网下载适合你的客户端安装后运行如下1.ollama接口配置打开ollama程序找到其图标点出其菜单选择 Settings打开上述开关这样其他应用就可以调用ollama服务了PS这里的Model location是模型下载存放的目录一定不能选择C盘否则会变成Disk C Soldier俗称C盘战士。可以百度一下如何迁移已经下载好的模型就是复制到目标位置然后将目录设置为目标位置即可此时打开浏览器在窗口输入http://localhost:11434/能看到这个说明ollama已经启动并可以提供对外服务。然后操作chatbox在下图2的位置填入 http://localhost:11434/ 或者 http://1270.0.1:11434/ (一般来说等效其实有点小区别感兴趣自己百度然后点击获取此时可以加载出本地ollama所有的模型点击绿色的加号图标选择你需要使用的模型然后就能看到这个模型被加载出来了。接下来打开默认模型选择一个省得我们每次都要手动选关闭设置窗口打开一个新会话是不是这里已经显示你刚才选择的默认模型了也可以自己手动选现在来说句话试试。、第一次启动会话模型会加载需要一点时间跟电脑性能有关加载完成之后第二次就可以直接用速度要快很多了。在cmd里运行 ollama ps可以看到当前已经加载的模型可以显示思考模式使用trae写个简单的代码来对接ollama注意这里需要明确ollama用哪个模型注意qwen3.5:latest可以缩写为qwen3.5但是后面有参数的如qwen3.5:2B要写全称AI生成的代码如下import requests import json def test_ollama_connection(): # Ollama服务器地址 base_url http://localhost:11434 model qwen3.5 # 测试连接 - 获取模型列表 print(测试连接到Ollama服务器...) try: response requests.get(f{base_url}/api/tags) response.raise_for_status() models response.json().get(models, []) print(f成功连接到Ollama服务器) print(f可用模型数量: {len(models)}) # 检查指定模型是否可用 model_available any(m.get(name, ).startswith(model) for m in models) if model_available: print(f模型 {model} 可用) else: print(f模型 {model} 不可用可用模型列表:) for m in models: print(f - {m.get(name)}) except requests.exceptions.RequestException as e: print(f连接失败: {e}) return False # 测试模型生成 print(\n测试模型生成能力...) try: payload { model: model, prompt: Hello, what can you do?, stream: False } response requests.post(f{base_url}/api/generate, jsonpayload) response.raise_for_status() result response.json() print(f生成成功) print(f响应: {result.get(response, No response)[:100]}...) return True except requests.exceptions.RequestException as e: print(f生成测试失败: {e}) return False if __name__ __main__: test_ollama_connection()连接成功现在你可以使用trae利用ollama的api开发本地app了。qwen3.5是多模态模型可以支持图片和文字同时上传的具体让trae帮你写代码就好。ollama有个默认的设置就是如果5分钟没有接口访问已经激活的模型这个模型就会从内存中卸载下次使用就要重新载入。你需要修改一个“OLLAMA_KEEP_ALIVE”的设置具体如何操作自行百度这个值默认为52.lmstudio api连接打开lmstudio点击图中位置图中LocalServer处打开箭头所示开关然后点击LoadModel加载模型就可以对外提供服务了图中的ip地址就是lmstudio 的api地址点击加载和ollama用的时候才加载不同lmstudio可以先加载也可以使用时被动加载并且不会自动释放现在回到chatbox填写api主机然后点击获取这次我们不设置默认模型而是直接在聊天界面中切换思考了很久这里也是注意在本地的小参数模型速度还不快的时候不要让他回答一些开放性问题最好是具体的问题这样不用等着对面回复等很久。lmstudio这边是可以看到一直在输出的。trae对接代码如下import requests import json def test_lmstudio_connection(): # LM Studio服务器地址 base_url http://127.0.0.1:1234 model qwen3.5-9b-mlx # 测试连接 - 检查服务器状态 print(测试连接到LM Studio服务器...) try: # LM Studio使用类似OpenAI的API格式 response requests.get(f{base_url}/v1/models) response.raise_for_status() models response.json().get(data, []) print(f成功连接到LM Studio服务器) print(f可用模型数量: {len(models)}) # 检查指定模型是否可用 model_available any(m.get(id, ) model for m in models) if model_available: print(f模型 {model} 可用) else: print(f模型 {model} 不可用可用模型列表:) for m in models: print(f - {m.get(id)}) except requests.exceptions.RequestException as e: print(f连接失败: {e}) return False # 测试模型生成 print(\n测试模型生成能力...) try: # LM Studio使用OpenAI兼容的API格式 payload { model: model, prompt: Hello, what can you do?, max_tokens: 100, temperature: 0.7 } response requests.post(f{base_url}/v1/completions, jsonpayload) response.raise_for_status() result response.json() print(f生成成功) print(f响应: {result.get(choices, [{}])[0].get(text, No response)[:100]}...) return True except requests.exceptions.RequestException as e: print(f生成测试失败: {e}) return False if __name__ __main__: test_lmstudio_connection()注意访问ollama和访问lmstudio的代码是不一样的这一点不用我们操心trae可以做很好结语至此我们已经介绍了ollama和lmstudio的接口使用方式这为我们开发单机版的app打下基础。当然单机版的api可以轻松替换为远端付费大模型的api修改一下调用方式即可。

相关文章:

本地大模型系列:2.通过API让本地大模型为你服务

上一篇我们介绍了ollama和lmstudio,这两个工具都是个人版的运行大模型的工具,可以用来运行本地小参数的LLM(所谓小参数一般指不超过27B的4bit量化LLM,按照1B参与大约需要0.7G显存加载进行预测,加上其他开销月1-1.5G&am…...

Spring AI Alibaba MCP协议实战:模型上下文协议集成与工具调用

Spring AI Alibaba MCP协议实战:模型上下文协议集成与工具调用 导读:MCP(Model Context Protocol,模型上下文协议)是 Anthropic 于 2024 年末发布的开放标准,旨在解决 AI 工具调用的碎片化问题。Spring AI …...

嵌入式信号发生器库:高精度方波生成与载波调制

1. SignalGenerator 库概述SignalGenerator 是一个轻量级、可移植的嵌入式信号发生器开源库,专为资源受限的微控制器设计。其核心目标是在任意 GPIO 引脚上生成高精度、可编程的方波信号,同时支持载波调制(Carrier Modulation)功能…...

XPath 语法完全指南:从基础语法到 SQL 注入中的应用

爬虫、处理过配置文件、或者接触过 MySQL 的 XML 函数的一定都见过 XPath 这个名词。它是一种专门用来在 XML 文档中“寻址”的语言,语法像文件路径一样直观。同时,XPath 是 Web 安全领域中 SQL 报错盲注中的关键角色。一、XPath 是什么?XPat…...

南北阁 Nanbeige 4.1-3B 企业应用方案:私有化部署+对话记忆管理+审计日志扩展接口

南北阁 Nanbeige 4.1-3B 企业应用方案:私有化部署对话记忆管理审计日志扩展接口 想在企业内部部署一个既智能又安全的对话AI吗?今天我们来聊聊如何基于南北阁 Nanbeige 4.1-3B 模型,打造一个功能完备的企业级对话应用。这个方案不仅支持纯本…...

保姆级教程:用Python+Robotics Toolbox搞定Panda机械臂的DH建模与正逆解(附避坑指南)

从零实现Panda机械臂运动学:Python Robotics Toolbox实战指南 机械臂控制是机器人领域的核心技术之一,而运动学建模则是实现精准控制的基础。本文将带您使用Python的Robotics Toolbox,一步步完成Franka Emika Panda机械臂的DH参数建模、正运动…...

【JSReverser-MCP】一句话逆向猿人学21题

近期听闻AI可以做逆向了,于是赶紧来试一试。 相关参考: vibe coding 氛围编程 Vibe coding 用 AI 做 JS 逆向食用教程 JSReverser-MCP 源:https://github.com/NoOne-hub/JSReverser-MCP 安装 环境要求 nodejs v22及以上 已部署Claude code或codex…...

GLM-TTS语音克隆实测:5分钟搞定方言克隆,效果惊艳!

GLM-TTS语音克隆实测:5分钟搞定方言克隆,效果惊艳! 1. 引言:语音克隆技术的新突破 在数字内容爆炸式增长的今天,个性化语音合成技术正成为内容创作者、企业客服、教育机构等领域的刚需。传统语音克隆方案往往需要数小…...

Adafruit ICM20X库详解:ICM20649与ICM20948驱动开发指南

1. 项目概述 Adafruit ICM20X 是 Adafruit 官方维护的 Arduino 兼容库,专为 TDK InvenSense 公司推出的 ICM20649 与 ICM20948 两款高性能 MEMS 运动传感器设计。该库并非通用型 ICM20X 系列驱动,而是聚焦于 Adafruit 自行设计并销售的硬件模块——即 I…...

计算机视觉进阶教学之Mediapipe库(一)

目录 简介 一、Mediapipe Python的安装和应用 二、手部检测 1. 导入必要的库 2. 初始化 MediaPipe 组件 3. 配置并创建手部检测模型实例 4. 启动摄像头并进入主循环 5. 绘制检测结果 三、手势识别 1. 手势识别核心逻辑 a. 计算基准距离 (Base Distance) b. 计算各手…...

Alpamayo-R1-10B开源模型价值:降低L4研发门槛,让算法团队专注因果逻辑而非工程胶水

Alpamayo-R1-10B开源模型价值:降低L4研发门槛,让算法团队专注因果逻辑而非工程胶水 1. 项目概述 Alpamayo-R1-10B是NVIDIA推出的自动驾驶专用开源视觉-语言-动作(VLA)模型,作为一套完整的自动驾驶研发工具链&#xf…...

SmolVLA参数详解:256×256输入分辨率对边缘计算设备的友好性分析

SmolVLA参数详解:256256输入分辨率对边缘计算设备的友好性分析 1. 引言:为什么边缘设备需要紧凑的视觉语言动作模型 在机器人技术和边缘计算领域,我们经常面临一个核心矛盾:强大的AI能力需要大量计算资源,而边缘设备…...

论文AI率突然从20%涨到50%怎么办?紧急处理攻略

论文AI率突然从20%涨到50%怎么办?紧急处理攻略 上周五,一个学妹发消息给我,语气挺崩溃的:“学长,我的论文上个月查AI率才18%,今天重新查直接变成52%了,后天就要交终稿,怎么办啊&…...

密码学算法 - 连分数算法

当你在计算某个数的近似值时🔍,或者在求解某个方程的根时🧮,连分数算法 就像一把神奇的放大镜🔎,能帮你逐步逼近那个隐藏在数字背后的真相。 欢迎来到《密码学核心算法实战》的连分数专题!这里…...

Linux内核构建三要素:Makefile、Kconfig与.config协同机制

1. Linux内核构建系统核心机制解析:Makefile、Kconfig与.config的协同关系在嵌入式Linux开发实践中,内核编译常被视为一道技术门槛。开发者面对庞大的源码树(以Linux-3.4.2为例,包含超过2.5万文件),往往陷入…...

DIY四足机器人入门:用开源项目打造你的第一个仿生机器狗

DIY四足机器人入门:用开源项目打造你的第一个仿生机器狗 四足机器人正从实验室走向创客空间。想象一下,周末午后在自家工作台上组装出一台能行走、奔跑甚至跳舞的机器狗——这不再是科幻场景。得益于MIT Mini Cheetah等开源项目的出现,普通爱…...

HAR实战指南:从Kinetics-400数据集获取到视频帧预处理全流程解析

1. Kinetics-400数据集入门指南 第一次接触Kinetics-400数据集时,我被它庞大的规模震撼到了。这个包含40万段视频片段的数据集,涵盖了从"打篮球"到"刷牙"等400种日常动作,是训练人体动作识别(HAR)模型的黄金标准。但随之…...

通义千问3-Reranker-0.6B模型压缩:基于TensorRT的推理加速

通义千问3-Reranker-0.6B模型压缩:基于TensorRT的推理加速 1. 为什么需要对Qwen3-Reranker做TensorRT优化 你可能已经试过直接加载Qwen3-Reranker-0.6B跑重排序任务,但很快会发现:推理速度不够快,显存占用偏高,尤其在…...

2026年AI提示词(Prompt)终极指南:国内聚合站实战技巧

在AI应用日益深入的2026年,能否写出高质量的提示词(Prompt),直接决定了你从GPT、Claude、Gemini等大模型中获得价值的效率与深度。对于国内用户,学习和实践提示词工程的最佳平台是聚合型AI镜像站。目前,通过…...

大模型学习笔记------SAM模型架构拆解与实战指南

1. SAM模型架构全景拆解 第一次接触SAM模型时,我被它"分割一切"的野心震撼到了。这就像给计算机视觉领域扔下了一颗原子弹——传统需要专门训练的分割任务,现在通过提示词就能实时完成。在实际部署医疗影像标注系统时,我发现理解这…...

读了Linux内核slab源码,发现Linus在20年前就写出了比std::pmr更高效的内存池——内核内存管理的4个设计模式

一、C++的内存池,和内核比差在哪? C++程序员对内存管理不陌生。从最基本的new/delete,到C++17引入的std::pmr::polymorphic_allocator,再到各种第三方库的对象池实现,我们一直在和内存分配器打交道。 但你有没有想过一个问题:为什么C++标准库直到2017年才搞出std::pmr这…...

Dify + Celery + Webhook深度集成:构建高可靠异步管道的6大关键配置点

第一章:Dify自定义节点异步处理的核心架构演进Dify 自 v0.6.10 起将自定义节点(Custom Node)的执行模型从同步阻塞式全面转向基于事件驱动的异步处理架构,其核心目标是解耦节点执行与工作流调度,提升高并发场景下的资源…...

JTAG接口原理、失效诊断与硬件防护实战指南

1. JTAG接口原理与工程实践深度解析在嵌入式系统与可编程逻辑器件的开发流程中,JTAG(Joint Test Action Group)接口不仅是调试与烧录的核心通道,更是硬件工程师验证设计完整性、定位物理层故障的关键工具。本文基于FPGA开发中频繁…...

STM32电机控制库5.4版:开源无感驱动注释详解——从寄存器设置到弱磁控制策略实现

STM32电机库5.4开源无感注释 KEIL工程文件 辅助理解ST库 寄存器设置AD TIM1 龙贝格PLL 前馈控制 弱磁控制 foc的基本流 svpwm占空比计算方法 斜坡启动 死区补偿 有详细的注释, 当前是无传感器版本龙贝格观测,三电阻双AD采样!搞STM32电机控制就像在玩硬件…...

高效掌握SeisUnix:从架构解析到实战应用

高效掌握SeisUnix:从架构解析到实战应用 【免费下载链接】SeisUnix The CWP/SU: Seismic Un*x Package - a free open seismic processing, research, and educational software package. Please seek distribution gzipped tar files at https://wiki.Seismic-Unix…...

Windows任务栏美化:TranslucentTB打造个性化视觉体验

Windows任务栏美化:TranslucentTB打造个性化视觉体验 【免费下载链接】TranslucentTB A lightweight utility that makes the Windows taskbar translucent/transparent. 项目地址: https://gitcode.com/gh_mirrors/tr/TranslucentTB 在Windows桌面个性化领域…...

嵌入式可观测性库:面向教学的轻量级实时调试方案

Elec350_OBS:面向嵌入式教学的实时观测与调试库深度解析1. 项目概述Elec350_OBS 是为加拿大麦吉尔大学(McGill University)ELEC 350 ——《嵌入式系统设计导论》课程配套开发的轻量级观测(Observability)支持库。该库并…...

C语言实现OTA安全降级与故障隔离:3层状态持久化+2次幂回退重试,让固件升级不再“一失足成千古恨”

第一章:C语言OTA升级失败处理的总体设计哲学在资源受限的嵌入式系统中,C语言实现的OTA升级失败处理并非简单的错误重试逻辑,而是一种以**确定性、可回滚性与状态自明性**为核心的系统级设计哲学。它要求每个操作步骤都具备原子边界&#xff0…...

Mos:3大核心技术彻底解决macOS鼠标滚动的终极体验难题

Mos:3大核心技术彻底解决macOS鼠标滚动的终极体验难题 【免费下载链接】Mos 一个用于在 macOS 上平滑你的鼠标滚动效果或单独设置滚动方向的小工具, 让你的滚轮爽如触控板 | A lightweight tool used to smooth scrolling and set scroll direction independently f…...

OpenClaw技能扩展:GLM-4.7-Flash加持的微信公众号排版

OpenClaw技能扩展:GLM-4.7-Flash加持的微信公众号排版 1. 为什么需要自动化公众号排版 每次在微信公众号后台手动调整格式的经历,都让我想起被Word排版支配的恐惧。图片尺寸不统一、行间距忽大忽小、代码块显示错位——这些琐碎问题消耗了我大量本可用…...