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

一文带你springai+ollama实现chat

Spring AI

Spring AI 项目旨在简化开发集成了人工智能功能的应用程序,而不增加不必要的复杂性。该项目从一些著名的 Python 项目中汲取灵感,例如 LangChainLlamaIndex,但 Spring AI 并不是这些项目的直接移植。该项目的创立基于这样的信念:下一波生成式 AI 应用不仅限于 Python 开发者,而是将在多种编程语言中普及。其核心在于,Spring AI 解决了 AI 集成的基本挑战:将企业数据和 API 与 AI 模型连接起来官方网址

项目搭建

版本相关,

目前springai支持Spring Boot 3.2.x and 3.3.x,JDK17

添加里程碑和快照仓库

<repositories><repository><id>spring-milestones</id><name>Spring Milestones</name><url>https://repo.spring.io/milestone</url><snapshots><enabled>false</enabled></snapshots></repository><repository><id>spring-snapshots</id><name>Spring Snapshots</name><url>https://repo.spring.io/snapshot</url><releases><enabled>false</enabled></releases></repository></repositories>

依赖管理

<dependencyManagement><dependencies><dependency><groupId>org.springframework.ai</groupId><artifactId>spring-ai-bom</artifactId><version>1.0.0-SNAPSHOT</version><type>pom</type><scope>import</scope></dependency></dependencies>
</dependencyManagement>

在根据需要引入实际的组件

此处以ollama为例

<dependency><groupId>io.springboot.ai</groupId><artifactId>spring-ai-ollama-spring-boot-starter</artifactId><version>1.0.0</version></dependency>

配置模型和地址

spring:application:name: spring-ai-ollamaai:ollama:base-url: http://127.0.0.1:11434chat:options:model: llama3.1:8b

controller发布服务

@Resourceprivate OllamaChatClient ollamaChatClient;@PostMapping("/ai")String sendMessage(@RequestParam(value = "message", defaultValue = "Tell me a joke") String message) {String call = ollamaChatClient.call(message);return call;}

测试

测试的前提是本地已经启动了ollama的服务,搭建参考前一篇文章:

大型语言模型(Large Language Model, LLM)了解一下?

d7cf3b6e4945faa6b790a948333ac970.png

postman测试

b8288b17e07de6a709e93153f0a654dc.png fe588bdf2fee0f93130575c5e5b53174.png

往期推荐

大型语言模型(Large Language Model, LLM)了解一下?

常用的JVM参数与命令你知道吗?

推荐两款程序员高效工作神器

Git命令基操必须要会!

非常nice! IDEA远程Debug调试程序

DataX二次开发之达梦数据库插件


相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 华为OD机试真题 - 跳马 - 广度优先搜索BFS(Python/JS/C/C++ 2024 D卷 200分)
  • 计算机网络 第1章
  • AI升降梯人数智能监测摄像头
  • VLM 系列——phi3.5-Vision——论文解读
  • Python Excel 操作全面总结
  • 气膜体育馆:学校体育设施的全新选择—轻空间
  • mac/windows 软件推荐
  • win11+vscode+Flutter 开发环境配置
  • Python OpenCV 入门指南
  • 八月二十九日(day 39)docker6
  • 个人笔记总结
  • ClickHousez中如何定时清理过期数据库?
  • Akka-集群
  • H264编码
  • 深度学习速通系列:贝叶思和SVM
  • 9月CHINA-PUB-OPENDAY技术沙龙——IPHONE
  • 《网管员必读——网络组建》(第2版)电子课件下载
  • AWS实战 - 利用IAM对S3做访问控制
  • C++11: atomic 头文件
  • GitUp, 你不可错过的秀外慧中的git工具
  • iOS筛选菜单、分段选择器、导航栏、悬浮窗、转场动画、启动视频等源码
  • JavaScript实现分页效果
  • js对象的深浅拷贝
  • scrapy学习之路4(itemloder的使用)
  • Spring Boot MyBatis配置多种数据库
  • SQL 难点解决:记录的引用
  • 力扣(LeetCode)21
  • 聊聊flink的TableFactory
  • 通过git安装npm私有模块
  • 网络应用优化——时延与带宽
  • 学习JavaScript数据结构与算法 — 树
  • 优秀架构师必须掌握的架构思维
  • 智能合约开发环境搭建及Hello World合约
  • hi-nginx-1.3.4编译安装
  • 长三角G60科创走廊智能驾驶产业联盟揭牌成立,近80家企业助力智能驾驶行业发展 ...
  • ​​​​​​​Installing ROS on the Raspberry Pi
  • #1015 : KMP算法
  • #pragma预处理命令
  • %@ page import=%的用法
  • (1/2)敏捷实践指南 Agile Practice Guide ([美] Project Management institute 著)
  • (152)时序收敛--->(02)时序收敛二
  • (2015)JS ES6 必知的十个 特性
  • (3)nginx 配置(nginx.conf)
  • (9)YOLO-Pose:使用对象关键点相似性损失增强多人姿态估计的增强版YOLO
  • (C语言)输入一个序列,判断是否为奇偶交叉数
  • (env: Windows,mp,1.06.2308310; lib: 3.2.4) uniapp微信小程序
  • (k8s)Kubernetes本地存储接入
  • (三)Honghu Cloud云架构一定时调度平台
  • .bat批处理(七):PC端从手机内复制文件到本地
  • .mysql secret在哪_MYSQL基本操作(上)
  • .Net 6.0 处理跨域的方式
  • .net FrameWork简介,数组,枚举
  • .NET 使用 XPath 来读写 XML 文件
  • .net 提取注释生成API文档 帮助文档
  • .NET多线程执行函数