Solon AI 开发学习4 - chat - 模型实例的构建和简单调用

news/2025/11/27 18:07:46/文章来源:https://www.cnblogs.com/noear/p/19279024

聊天模型接口(ChatModel)支持:

  • 同步调用(call),一次性返回结果
  • 支流式调用(stream,基于 reactivestreams 规范)。通过 ssex-ndjson 流式返回结果。
  • Tool Call(或 Function Call) 与本地数据互动(需要 llm 支持)
  • 提示语多消息输入输出(记忆体)
  • 带图片消息
  • 与 solon-flow 结合使用

1、聊天模型的构建

  • 配置方式构建
solon.ai.chat:demo:apiUrl: "http://127.0.0.1:11434/api/chat" # 使用完整地址(而不是 api_base)provider: "ollama" # 使用 ollama 服务时,需要配置 providermodel: "llama3.2"headers:x-demo: "demo1"
import org.noear.solon.ai.chat.ChatConfig;
import org.noear.solon.ai.chat.ChatModel;
import org.noear.solon.annotation.Bean;
import org.noear.solon.annotation.Configuration;
import org.noear.solon.annotation.Inject;@Configuration
public class DemoConfig {@Beanpublic ChatModel build(@Inject("${solon.ai.chat.demo}") ChatConfig config) {return ChatModel.of(config).build();}
}
  • 手动方式构建
@Configuration
public class DemoConfig {@Beanpublic ChatModel build() {return ChatModel.of("http://127.0.0.1:11434/api/chat") //使用完整地址(而不是 api_base).provider("ollama").model("llama3.2").headerSet("x-demo", "demo1").defaultOptionAdd("stream_options", Utils.asMap("include_usage", true)).build();}
}

2、同步调用(call)

public void case1() throws IOException {ChatResponse resp = chatModel.prompt("hello").call();//打印消息log.info("{}", resp.getMessage());
}

3、异步流式或响应式调用(stream)

流式返回为 org.reactivestreams.Publisher(reactivestreams 规范)

public void case2() throws IOException {Publisher<ChatResponse> publisher = chatModel.prompt(ChatMessage.ofUser("hello")).stream();//return publisher; //使用 solon-web-rx 时可直接返回;或者对接 solon-web-sse 或 websocketpublisher.subscribe(new SimpleSubscriber<ChatResponse>().doOnNext(resp -> {log.info("{}", resp.getMessage());}).doOnComplete(() -> {log.debug("::完成!");}).doOnError(err -> {log.error("{}", err);}));
}

可以直接订阅消费(如上)。也可对接各种流行的响应式框架,比如 mutiny、rxjava 或 reactor:

@Produces(MimeType.TEXT_EVENT_STREAM_UTF8_VALUE)
@Mapping("case2")
public Flux<SseEvent> case2(String prompt) throws IOException {return Flux.from(chatModel.prompt(prompt).stream()).map(resp -> resp.getMessage()).map(msg -> new SseEvent().data(msg.getContent())).doOnError(err->{log.error("{}", err);});
}

4、模型日志

内部默认会打印 llm 请求与响应的日志,分别以 ai-request:ai-response: 开头。日志级别为:DEBUG。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/978808.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2025 年快速退火炉厂家最新推荐榜,技术实力与市场口碑深度解析,呈现高性能设备优质品牌晶圆 / 高温 / 桌面 / 半自动 / 全自动 / 芯片 / 硅片 / RTP 快速退火炉公司推荐

引言 在工业制造领域,快速退火炉作为关键热处理设备,对下游产业产品质量与生产效率影响重大。随着相关行业需求攀升,市场对优质快速退火炉的需求日益迫切。本次推荐榜基于国际热处理设备协会(IHTEA)2025 年度测评…

二进制漏洞扫描技术一览

静态二进制分析 静态二进制分析是在不执行程序的情况下,通过分析二进制文件的结构和代码来发现潜在漏洞的技术。该过程始于反汇编与反编译阶段,工具将机器指令转换为可读的汇编代码或高级语言伪代码。例如,工具可以…

Qwen是“源神”?实际上GLM-4.6才是被低估的黑马

在AI科技圈,Qwen因其开源模型数量位居世界第一、模型涵盖各种大小、开销低而表现不俗,被称为“源神(开源界的神)”。这也导致有些人在体验之后,觉得Qwen写的代码质量是国内第一,仅次于Claude、chatGPT、Gemini、…

详细介绍:论文阅读笔记——自注意力机制

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

conda虚拟环境的创建与删除

conda虚拟环境的创建与删除 1. conda虚拟环境的创建 1.1 最常用的方式 例如创建名为 myenv 的虚拟环境,并使用 Python 3.9: conda create -n myenv python=3.9创建后激活环境: conda activate myenv退出环境: cond…

CMTI测试为何成为半导体隔离器件的“必考题”?苏州永创PPS-CMTIX系统给出专业答案 - FORCREAT

在工业自动化、电机驱动、机器人控制等高可靠性系统中,隔离器件的性能直接决定了系统在复杂电磁环境下的稳定性和安全性。而共模瞬变抗扰度(Common Mode Transient Immunity, CMTI),正是衡量隔离器件在强干扰下是否…

约会急救包:幻颜之约如何让你由内而外自信登场

约会前1小时,女生总在镜子前反复确认:口红是否脱妆、裙摆是否平整,却很少有人留意,私密部位的舒适与精致,才是亲密互动中“隐形的自信来源”。幻颜之约专为精致社交设计的“约会急救包”,从亲密体验的润滑准备,…

2025 年汽车摄影公司最新推荐榜,聚焦技术实力与市场口碑深度解析汽车广告拍摄/汽车拍摄活动策划/汽车摄影广告/汽车活动摄影/汽车发布会场地摄影/汽车摄影修图公司推荐

引言 在汽车行业全球化发展进程中,汽车摄影作为品牌传播的关键视觉载体,其质量直接影响消费者对车型的认知与选择。为精准筛选优质汽车摄影服务品牌,本次榜单评选参考了国际商业影像协会(IBIA)2024 年度全球汽车摄…

泳池后的安心:幻颜之约游泳后私处护理流程

夏日泳池里的清凉惬意总让人沉醉,但很少有人留意,泳池水中的氯制剂、潜藏的大肠杆菌与白色念珠菌,正悄悄威胁着私密健康。有数据显示,游泳后24小时内出现私处瘙痒、异味的女性占比高达37%,这正是水质刺激与菌群失…

泳池、温泉后必做?幻颜之约的“水环境”私护指南

据妇科门诊数据显示,夏季游泳、泡温泉后3天内,私处瘙痒、白带异常的就诊量会上升35%——很多女性不知道,看似清爽的水体环境,实则隐藏着私密健康的“隐形威胁”。泳池中的氯水会破坏私处天然弱酸性屏障,温泉水的高…

瑜伽、健身达人的私护清单:幻颜之约应对汗湿与摩擦

运动女性的私密健康挑战 当你在瑜伽垫上舒展身体,或在跑步机上挥洒汗水时,可能不会意识到:那些紧身的运动裤和不断积聚的汗液,正在悄悄影响着你的私密健康。运动带来的不仅是身体的畅快,还可能伴随着私处黏腻、外…

2025 年接触角测量仪厂家最新推荐榜,深度剖析品牌技术实力与市场口碑及产品适配性座滴法 / 动态 / 静态 / 全自动 / 水滴 / 高温 / 晶圆 / 便携式接触角测量仪公司推荐

引言 在材料科学、电子制造、新能源等领域高速发展背景下,接触角测量仪作为检测材料表面润湿性的核心设备,市场需求持续攀升。为精准筛选优质品牌,本次推荐榜参考国际表面科学与技术协会(ISST)最新测评数据,采用…

mdns shell

avahi-browse -r -t "_http-printer._tcp" avahi-browse -r -t "_http._tcp"

体育赛场竞风流 热血竞技展锋芒

2025-11-27 18:12:46 体育赛场竞风流 热血竞技展锋芒|@PaRiSdS.cN@||@JxJoMe.cN@||@DlYiTuO.cN@||@ZaIxIaNgNn.cOm@||@SrAfLooR.cOm@||@JcSmDwSm.cOm@||@ZjTaNgBa.cOm@||@HrBfUdOnG.cN@|

竞技热血永不熄 体育赛场铸传奇

2025-11-27 18:09:33 竞技热血永不熄 体育赛场铸传奇|@SuTaIdC.cOm@||@BdGfOoD.cOm@||@QiUdUiWaNg.nEt@||@ZeEmOo.cOm.cN@||@SdHxYn.cOm@||@BeStFtInTaK.cOm@||@JiAnGYoUwL.cOm@||@GrAiNvAlLeY.cN@||@JuNsIe.cN@||@SuN…

2025 年干式超声波除尘厂家最新推荐榜,聚焦技术实力与市场口碑深度解析USC / 非接触式 / 无损伤 / 锂电极片 / 玻璃盖板 / 显示玻璃 / 薄膜 / PCB / 镜头干式超声波除尘公司推荐

引言 当前工业生产对高效、环保除尘设备的需求持续增长,传统除尘方式的局限性愈发凸显。国际空气净化设备协会(IAPEA)2025 年最新测评数据显示,在全球工业除尘设备性能测评中,干式超声波除尘设备在超细颗粒物(PM…

2025 年等离子设备厂家最新推荐榜,技术实力与市场口碑深度解析,助力企业精准选型表面处理 / 镀膜 / 封装处理 / 清洗 / 表面活化 / 表面改性设备 / 真空等离子清洗设备公司推荐

引言 在全球工业制造向高精度、绿色化转型的趋势下,等离子设备作为表面处理领域的核心装备,市场需求持续增长。为帮助企业精准筛选优质设备品牌,国际等离子技术应用协会(IPTA)联合全球工业装备测评机构,基于近一…

音乐模式切换下一曲造成灯光异常问题

现象:切下一曲时pwm占空比被干扰导致灯光抖动。 解决方法:改用固定时钟 clock_manage.c中的CLOCK_FIX 改为192