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

云虚拟机可以做几个网站网站seo基础

云虚拟机可以做几个网站,网站seo基础,公司网站建站收费,Wordpress付费主题排名【Spring AI 实战】基于 Docker Model Runner 构建本地化 AI 聊天服务:从配置到函数调用全解析 前沿:本地化 AI 推理的新范式 随着大语言模型(LLM)应用的普及,本地化部署与灵活扩展成为企业级 AI 开发的核心需求。Do…

【Spring AI 实战】基于 Docker Model Runner 构建本地化 AI 聊天服务:从配置到函数调用全解析

前沿:本地化 AI 推理的新范式

随着大语言模型(LLM)应用的普及,本地化部署与灵活扩展成为企业级 AI 开发的核心需求。Docker Model Runner 作为 Docker 官方推出的 AI 推理引擎,支持集成多厂商模型并提供标准化 API,结合 Spring AI 的强大生态,可快速构建低成本、高可控的本地化聊天服务。本文将深入解析如何通过 Spring AI 与 Docker Model Runner 的无缝集成,实现开箱即用的 LLM 功能,涵盖环境配置、属性调优、函数调用等核心技术点。

一、环境准备:搭建 Docker Model Runner 基础架构

1. 前提条件

  • Docker Desktop 安装:下载并安装适用于 Mac 的 Docker Desktop 4.40.0(其他平台请对应选择)。
  • 启用 Model Runner
    选项 1(直接启用)
    docker desktop enable model-runner --tcp 12434
    
    基 URL 配置为 http://localhost:12434/engines
    选项 2(Testcontainers 容器化)
    通过 Socat 容器映射端口,适用于自动化测试:
    @Container
    private static final SocatContainer socat = new SocatContainer().withTarget(80, "model-runner.docker.internal");@Bean
    public OpenAiApi chatCompletionApi() {var baseUrl = "http://%s:%d/engines".formatted(socat.getHost(), socat.getMappedPort(80));return OpenAiApi.builder().baseUrl(baseUrl).apiKey("test").build();
    }
    

2. Spring AI 依赖配置

pom.xmlbuild.gradle 中引入最新 Starter:

<!-- Maven -->
<dependency><groupId>org.springframework.ai</groupId><artifactId>spring-ai-starter-model-openai</artifactId>
</dependency>
// Gradle
implementation 'org.springframework.ai:spring-ai-starter-model-openai'

二、核心配置:从连接到模型调优

1. 基础连接配置

通过 application.properties 配置 Docker Model Runner 端点:

spring.ai.openai.api-key=test          # 任意有效字符串(非真实 OpenAI Key)
spring.ai.openai.base-url=http://localhost:12434/engines  # Model Runner 引擎端点
spring.ai.openai.chat.options.model=ai/gemma3:4B-F16      # 选择目标模型(需与 Model Runner 支持的镜像匹配)

2. 聊天属性深度解析

Spring AI 提供细粒度配置,支持重试策略、连接参数及模型行为调优,以下为核心属性表:

重试策略(前缀:spring.ai.retry
属性名称描述默认值
max-attempts最大重试次数10
backoff.initial-interval初始回退间隔(秒)2
backoff.multiplier回退间隔乘数(指数增长因子)5
backoff.max-interval最大回退间隔(秒)180
on-client-errors是否重试 4xx 错误false
模型行为配置(前缀:spring.ai.openai.chat.options
属性名称描述默认值
temperature输出随机性控制(0-1,越高越随机)0.8
max-tokens最大生成令牌数无限制(受模型上下文限制)
frequencyPenalty重复令牌惩罚(-2.0~2.0)0.0
responseFormat强制输出 JSON 格式
tools允许调用的工具列表
多模型管理

通过 spring.ai.model.chat 开关启用/禁用 OpenAI 聊天模型:

spring.ai.model.chat=openai  # 启用 OpenAI 聊天模型(默认)
# spring.ai.model.chat=none  # 禁用聊天模型

三、进阶功能:函数调用与流式响应

1. 智能工具集成(函数调用)

Docker Model Runner 支持模型自动触发注册函数,实现外部服务交互。
示例代码:

@SpringBootApplication
public class DockerModelRunnerDemo {@Bean@Description("获取指定地点天气")public Function<WeatherRequest, WeatherResponse> weatherFunction() {return request -> {double temp = "Amsterdam".equals(request.location()) ? 20 : 25;return new WeatherResponse(temp, request.unit());};}@BeanCommandLineRunner runner(ChatClient chatClient) {return args -> {String response = chatClient.prompt().user("巴黎和阿姆斯特丹的天气如何?").functions("weatherFunction")  // 引用 Bean 名称.call().content();System.out.println(response);  // 输出:阿姆斯特丹 20℃,巴黎 25℃};}
}record WeatherRequest(String location, String unit) {}
record WeatherResponse(double temp, String unit) {}

2. 流式响应实现

通过 stream() 方法支持实时逐令牌输出,提升交互体验:

@RestController
public class ChatController {private final OpenAiChatModel chatModel;@GetMapping("/ai/generateStream")public Flux<ChatResponse> generateStream(@RequestParam String message) {Prompt prompt = new Prompt(new UserMessage(message));return chatModel.stream(prompt);  // 流式返回响应}
}

四、实战示例:构建基础聊天接口

1. 控制器实现

创建 REST 端点处理用户输入并返回生成结果:

@RestController
public class ChatController {private final OpenAiChatModel chatModel;@Autowiredpublic ChatController(OpenAiChatModel chatModel) {this.chatModel = chatModel;}@GetMapping("/ai/generate")public Map<String, String> generate(@RequestParam String message) {String response = chatModel.call(message);  // 同步调用模型return Collections.singletonMap("result", response);}
}

2. 禁用无关功能(如 Embedding)

由于 Docker Model Runner 暂不支持 Embedding,需显式关闭:

spring.ai.openai.embedding.enabled=false

五、最佳实践与注意事项

  1. 模型选择:确保 spring.ai.openai.chat.options.model 与 Model Runner 中加载的镜像标签一致(如 ai/gemma3:4B-F16)。
  2. 性能优化:通过降低 temperature(如 0.5)提升输出确定性,或调整 max-tokens 避免超长响应。
  3. 错误处理:利用 retry.exclude-on-http-codes 排除无需重试的状态码(如 404),减少无效重试。

总结:本地化 AI 开发的破局之道

本文通过 Docker Model Runner 与 Spring AI 的集成实践,展示了如何快速构建可控、可扩展的本地化聊天服务。核心优势包括:

  • 低成本部署:无需依赖云端 API,降低数据传输延迟与成本;
  • 灵活扩展:支持多模型热插拔,通过函数调用无缝连接外部服务;
  • 企业级适配:细粒度的配置体系满足高可用、高性能需求。

随着 AI 应用的落地深化,本地化推理与框架级集成将成为企业构建智能应用的核心竞争力。通过 Spring AI 的标准化接口与 Docker Model Runner 的模型管理能力,开发者可聚焦业务逻辑,加速 AI 功能落地。

延伸阅读

  • Spring AI 升级指南
  • OpenAI 函数调用规范
http://www.dtcms.com/wzjs/479510.html

相关文章:

  • 什么网站可以做ppt模板seo公司怎么推广宣传
  • 网上商城网站设计福建百度开户
  • 住房建设部官方网站居住区政策百度收录时间
  • 基于cms系统网站的建设91
  • wordpress 捐赠廊坊seo网络推广
  • 中山网站设计外包百度推广哪种效果好
  • 上海网站建设怎么样灰色词网站seo
  • 美女与男做那个的视频网站seo对网站优化
  • 北京企业建站技术2023年10月疫情恢复
  • 拟定网站建设合同2022好用值得推荐的搜索引擎
  • 搜索引擎外部链接优化seo相关岗位
  • 网站建设维护方案网站内容检测
  • 微信公众号运营教程专业北京seo公司
  • wordpress谷歌字体 4.9搜索引擎优化面对哪些困境
  • 红酒购物网站源码网络营销的主要推广方式
  • 人才招聘网站建设百度一下电脑版首页网址
  • 深圳做网站jm3q电商关键词一般用哪些工具
  • 公司网站制作与推广百度域名收录
  • 网站运营知识下载百度极速版免费安装
  • 物业网站建设方案在线bt磁力搜索
  • 做装机u盘那个网站好百度股市行情上证指数
  • 搞基怎么做视频网站备案域名出售平台
  • 网站建设最新教程视频教程免费建一级域名网站
  • 西安网站建设交易百度云搜索引擎入口 百度网盘
  • 福建建设委网站营销推广外包公司
  • 如何制作动漫网站模板下载英文谷歌seo
  • 哪个网站做阿里首页模板软文广告经典案例300字
  • 旅游营销的网站建设seo岗位有哪些
  • 利用店铺网站做灰色优化如何在网络上推广产品
  • wordpress返回上页广州网站快速优化排名