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

asp.net网站开发步骤全国一级建造师网

asp.net网站开发步骤,全国一级建造师网,智能做网站,山西运城市建设局网站前言 Spring AI Alibaba 开源项目基于 Spring AI 构建,是阿里云通义系列模型及服务在 Java AI 应用开发领域的最佳实践,提供高层次的 AI API 抽象与云原生基础设施集成方案,帮助开发者快速构建 AI 应用。 项目地址 gitcode平台:ht…

前言

Spring AI Alibaba 开源项目基于 Spring AI 构建,是阿里云通义系列模型及服务在 Java AI 应用开发领域的最佳实践,提供高层次的 AI API 抽象与云原生基础设施集成方案,帮助开发者快速构建 AI 应用。

  1. 项目地址

gitcode平台:https://gitcode.com/Var_ya/springAI_ollama_chatInterfaceApi

  1. 核心技术官网地址

Spring AI Alibaba 官网地址:https://java2ai.com/

**knife4j官网地址: **https://doc.xiaominfo.com/

ollama官网地址:https://ollama.com/

一、技术选型说明

1. 核心组件

  • Spring Boot 3.4.5:后端服务基础框架
  • spring-ai-ollama-spring-boot-starte:alibaba官方AI集成框架(1.0.0-M6版本)
  • knife4j 4.5.0:可视化展示后端接口页面
  • Ollama:本地大模型运行环境(支持Llama2、Mistral等模型)

2. 环境要求

  • JDK 17+
  • 8GB+ 内存(运行大模型需要)
  • ollama version is 0.5.13

二、环境准备

1. 安装Ollama

  1. Ollama官网安装

官网地址:https://ollama.com/

官网下载window版本地址:https://ollama.com/download

  1. 百度网盘下载安装

百度网盘地址:https://pan.baidu.com/s/1mx_3R4NVjOSC9D8BaGdYHg?pwd=9eg7

  1. 运行OllamaSetup安装包
  • 双击OllamaSetup.exe
  • 安装包点击:Install

  • 安装成功
    (截图示例:终端执行ollama --version

2. 下载模型

本教程使用的模型:deepseek-r1:8b

模型运行下载命令:ollama run deepseek-r1:8b

ollama run deepseek-r1:8b

2. 模型运行效果


三、创建Spring Boot项目

注意 :类型修改为:Maven

1. 项目初始化

使用start.spring.io创建项目:

  • 添加依赖:
    • Spring Web
    • spring-ai-ollama-spring-boot-starter
    • knife4j-openapi3-jakarta-spring-boot-starter

2. 配置核心POM.xml

<dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency>
<!--		阿里巴巴ollama--><dependency><groupId>org.springframework.ai</groupId><artifactId>spring-ai-ollama-spring-boot-starter</artifactId><version>1.0.0-M6</version></dependency><!-- Swagger3-knife4j依赖 --><dependency><groupId>com.github.xiaoymin</groupId><artifactId>knife4j-openapi3-jakarta-spring-boot-starter</artifactId><version>4.5.0</version></dependency></dependencies>

四、配置Ollama连接

application.yml

server:port: 9999
spring:ai:ollama:base-url: http://localhost:11434 # 哦llama地址chat:model: deepseek-r1:7b # 模型options:temperature: 0.8 # 温度越高,回答越有创意top-p: 0.9 # 数值越高,回答越多样top-k: 100 # 数值越高,回答越多样# knife4j的增强配置,不需要增强可以不配
knife4j:enable: true    # 开启knife4j,无需添加@EnableKnife4j注解setting:language: zh_cn   #中文#  swagger-model-name: 实体列表   #默认为: Swagger Modelsbasic: # 开启Swagger的Basic认证功能,默认是falseenable: falseusername: varyapassword: varya

五、编写AI对话接口

1. 创建Controller


package cn.varin.springai_ollama_chatinterfaceapi.controller;import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import jakarta.servlet.http.HttpServletResponse;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.servlet.mvc.method.annotation.SseEmitter;
import reactor.core.publisher.Flux;import org.springframework.ai.chat.client.ChatClient;
import org.springframework.ai.chat.client.advisor.SimpleLoggerAdvisor;
import org.springframework.ai.chat.model.ChatModel;
import org.springframework.ai.ollama.api.OllamaOptions;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;import java.io.IOException;
import java.util.stream.Stream;@RestController
@Tag(name="客户端实例")@RequestMapping("/client")
public class OllamaChatClientController {private static final String DEFAULT_PROMPT = "你好,介绍下你自己!请用中文回答。";private final ChatClient ollamaiChatClient;public OllamaChatClientController(ChatModel chatModel) {// 构造时,可以设置 ChatClient 的参数this.ollamaiChatClient = ChatClient.builder(chatModel)// 实现 Logger 的 Advisor.defaultAdvisors(new SimpleLoggerAdvisor())// 设置 ChatClient 中 ChatModel 的 Options 参数.defaultOptions(OllamaOptions.builder().topP(0.7).model("deepseek-r1:1.5b").build()).build();}/*** ChatClient 简单调用*/@Operation(summary = "无参数调用")@GetMapping("/simple/chat")public String simpleChat() {return ollamaiChatClient.prompt(DEFAULT_PROMPT).call().content();}/*** ChatClient 流式调用*/@Operation(summary = "流式调用")@GetMapping("/stream/chat")public Flux<String> streamChat1(@RequestParam String message) {return ollamaiChatClient.prompt(message).stream().content();}@GetMapping("/stream")public SseEmitter streamChat2(@RequestParam String message) {SseEmitter emitter = new SseEmitter();Flux<String> content = ollamaiChatClient.prompt(message).stream().content();try {emitter.send(content);System.out.println(emitter.toString());} catch (IOException e) {throw new RuntimeException(e);}return emitter;}}

2. 支持流式响应(可选)

	/*** ChatClient 流式调用*/@Operation(summary = "流式调用")@GetMapping("/stream/chat")public Flux<String> streamChat1(@RequestParam String message) {return ollamaiChatClient.prompt(message).stream().content();}

六、knife4j测试接口

访问Url:http://localhost:9999/doc.html

1. 无参数接口测试

接口:/client/simple/chat

2. 流式调用接口测试

接口:/client/stream/chat


七、扩展功能建议

  1. 多模型切换:通过@RequestParam动态选择模型
  2. 对话历史管理:使用Redis存储上下文
  3. 速率限制:添加Bucket4j限流
  4. API鉴权:集成Spring Security

八、常见问题排查

问题现象解决方案
连接Ollama超时确认ollama serve正在运行
模型加载失败检查ollama list确认模型存在
内存不足尝试更小参数的模型版本

九、项目效果展示


十、总结

本文演示了如何通过:

  1. 本地部署Ollama服务
  2. Spring AI集成LLM能力
  3. 构建RESTful API接口

优势:数据隐私性强、无需API密钥、支持离线环境

完整代码示例:https://gitcode.com/Var_ya/springAI_ollama_chatInterfaceApi


文章转载自:

http://ye8vZbT5.sqfrg.cn
http://d7YiJJFx.sqfrg.cn
http://IBKwylQo.sqfrg.cn
http://Fbx09RYo.sqfrg.cn
http://FwP9u702.sqfrg.cn
http://FD33jcO1.sqfrg.cn
http://vmz0ESgI.sqfrg.cn
http://9I6Daq6n.sqfrg.cn
http://MPCXUUFw.sqfrg.cn
http://1JnJSdDE.sqfrg.cn
http://VpDRiQ3p.sqfrg.cn
http://DUYajZLt.sqfrg.cn
http://M4To5Cek.sqfrg.cn
http://3umm2Iy6.sqfrg.cn
http://TQbd8pnA.sqfrg.cn
http://QTORwNXE.sqfrg.cn
http://Tbzq7NaN.sqfrg.cn
http://hSTPgX2F.sqfrg.cn
http://uqS1MGyC.sqfrg.cn
http://usDokw65.sqfrg.cn
http://i0UR5vPb.sqfrg.cn
http://Re1x7YV8.sqfrg.cn
http://SEmk7y78.sqfrg.cn
http://EMTV85HJ.sqfrg.cn
http://ESMIFDnc.sqfrg.cn
http://ocYG50FX.sqfrg.cn
http://d4PHOkvA.sqfrg.cn
http://yO49XBUN.sqfrg.cn
http://Vm2TwaED.sqfrg.cn
http://hnwCdhUb.sqfrg.cn
http://www.dtcms.com/wzjs/739765.html

相关文章:

  • 昆明网站推广咨询平台江宁滨江网站建设
  • 深圳做外贸网站多少钱公众号开发者是什么意思
  • 网站建设管理员角色设置漯河 做网站
  • 快站公众号工具将wordpress页面保存为模板
  • 网站做好后珠海网站建设制作哪家专业
  • 做三网站wordpress 安装新主题
  • 江门网站建设策划微信视频网站怎么做
  • 某种网站怎么找怎样进入网站的后台
  • 快速建站视频深圳网站建设总部
  • 网站建设安全与威胁邯郸网站设计怎么开发
  • 镇江建设局网站要实现对网站中的所有内容进行搜索代码应该怎么写
  • 免费的软件网站建立一个网站需要人员
  • 西安国内做网站的公司有哪些google首页
  • 桂林小学网站建设域名注册个人和企业有什么区别
  • 静态网站公用头部 调用标题手机网站大全
  • 政法队伍建设网站主要内容死链对网站链轮的影响
  • 专业做财经直播网站有哪些界面设计心得
  • 可以做简单小活动的网站做网站笔记本2014
  • asp.net网站后台源码wordpress音乐外链
  • fqapps com网站怎么做吉林市网站建设优化
  • 高流量网站开发框架经验自媒体怎么申请注册
  • 在中国做网站网站违法吗centos 7 安装wordpress
  • 网站的作用网站优化年报告
  • wordpress采集建站网站建设全包
  • 资讯门户类网站模板创意网名昵称大全
  • 品牌微营销网站建设wordpress get_the_author_meta
  • 高校门户网站系统企业网站建设组织人员可行性分析
  • 丝绸之路网站建设怎样做网站标题优化
  • 长春网站开发培训价格设计wordpress主题
  • 免费h5页面制作平台有哪些温州做网站优化