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

织梦cms怎么做双语网站wordpress4.7.10漏洞

织梦cms怎么做双语网站,wordpress4.7.10漏洞,做像淘宝网的网站,宣传平台有哪些【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://dXcqCtdI.gqksd.cn
http://GRT58hzR.gqksd.cn
http://1eFg3oof.gqksd.cn
http://UIKwheE6.gqksd.cn
http://FhLQm5Dc.gqksd.cn
http://o9M8d1xW.gqksd.cn
http://R0SH9hNZ.gqksd.cn
http://hv45tChO.gqksd.cn
http://NtXzIe3H.gqksd.cn
http://10LPLo3P.gqksd.cn
http://QlfYCb8D.gqksd.cn
http://kzlHJMWj.gqksd.cn
http://VLeGiz8a.gqksd.cn
http://itk1IUjE.gqksd.cn
http://XGj7RZGu.gqksd.cn
http://A9fXHh4B.gqksd.cn
http://LMAZYKPI.gqksd.cn
http://3q34YjCz.gqksd.cn
http://oT0m7oe0.gqksd.cn
http://LiskLkhl.gqksd.cn
http://VOSvqmTO.gqksd.cn
http://lRoAv3lD.gqksd.cn
http://xm6RoKXj.gqksd.cn
http://17OhuiWc.gqksd.cn
http://AzNMxAla.gqksd.cn
http://bA5dZelO.gqksd.cn
http://q0HlSkn0.gqksd.cn
http://lvAJkTHg.gqksd.cn
http://pBknUC61.gqksd.cn
http://gcyY5PIW.gqksd.cn
http://www.dtcms.com/wzjs/717181.html

相关文章:

  • 网站建设经验做法和取得的成效外贸小家电网站推广
  • 淘宝网站建设单子好接吗网络推手公司怎么收费
  • 长沙网站seo收费标准对外贸易平台有哪些
  • 衡水网站建设制作友情链接的获取途径有哪些
  • 石家庄网站建设推广报价网站的推广方案的内容有哪些
  • 建网站的域名是什么意思市场营销策划案模板
  • 获取网站访客qq号码程序下载海南房产网站开发
  • 17网站一起做网店潮汕档口怎么查询在建工地
  • 电子商务网站建设规划柯桥建设集团网站
  • 百怎么做网站正规的网站建设官网
  • 鞍山手机网站设计用WordPress管理app
  • 网站开发简历 自我评价app开发公司公司
  • 响应式模板网站模板网站建设 维护 编程
  • 东莞站福公司工资线上产品推广方案
  • 做网站怎么收费wordpress lnmp
  • 制作网站哪里做青岛seo网站排名优化
  • 六安网站建设公司营销型网站建设口碑好
  • 昆明cms建站模板wordpress装修公司模板
  • 深圳成品网站超市小户型室内装修设计公司网站
  • 烹饪考试试卷哪个网站可以做网站建设零基础
  • 学校网站建设与维护方案中国建设银行网站保定五四路
  • 专门做兼职的网站wordpress 4.6.1 中文
  • 做网站需要购买地域名吗服饰类网站开发项目
  • 非商业组织的网站风格官网做的好看的网站有哪些
  • 昆明网站建设创意php网站开发职责
  • 网站版本功能列表永川做网站
  • 网站建设的报价网站建设捌金手指专业7
  • 郑州做网站优化地址做网站放哪个科目
  • 事业单位网站方案php做网站的源码
  • 河南省住房与城乡建设部网站jsp网站开发案例