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

博客网站建设方案国内优秀网站案例

博客网站建设方案,国内优秀网站案例,男人女人做那事网站,如何给自己的网站做seo当前各种AI项目层出不穷,但绝大多数都是用python写的,现在Spring开源了Spring AI项目,让Java开发者也可以轻松给自己的springboot项目集成AI能力。目前spring AI正式版本为0.8.1,支持接入openAI、Ollama、Azure openAI、Huggingfa…

        当前各种AI项目层出不穷,但绝大多数都是用python写的,现在Spring开源了Spring AI项目,让Java开发者也可以轻松给自己的springboot项目集成AI能力。目前spring AI正式版本为0.8.1,支持接入openAI、Ollama、Azure openAI、Huggingface等,可实现聊天、embedding、图片生成、语音转文字、向量数据库、function calling、prompt模板、outputparser、RAG等功能,就像Java版本的langchain,本文通过一些示例简要介绍部分功能。

一、OpenAI简介

OpenAI是一家致力于推动人工智能发展的研究公司,其目标是确保人工智能的益处广泛而均匀地分布。为了实现这一目标,OpenAI开发了一系列强大的API,供开发者在自己的应用中集成AI功能。

OpenAI的API涵盖了自然语言处理、图像识别、机器翻译等多个领域,其中最为著名的可能是GPT系列模型,它们在文本生成、文本理解等方面表现出色。

二、Spring Boot与OpenAI的无缝对接

Spring Boot是一个流行的Java框架,用于快速开发企业级应用。其简洁的配置和丰富的生态使得Spring Boot成为许多开发者的首选。将Spring Boot与OpenAI对接,可以让你的Java应用轻松拥有AI能力。
 

Spring AI API 涵盖了广泛的功能。每个主要功能都在其专门的部分中进行了详细介绍。为了提供概述,可以使用以下关键功能:

  • 跨 AI 提供商的可移植 API,用于聊天、文本到图像和嵌入模型。支持同步和流 API 选项。还支持下拉访问模型特定功能。我们支持 OpenAI、Microsoft、Amazon、Google、Huggingface 等公司的 AI 模型。

  • 跨 Vector Store 提供商的可移植 API,包括同样可移植的新颖的类似 SQL 的元数据过滤器 API。支持 8 个矢量数据库。

  • 函数调用。Spring AI 使 AI 模型可以轻松调用 POJO java.util.Function 对象。

  • AI 模型和向量存储的 Spring Boot 自动配置和启动器。

  • 数据工程的 ETL 框架。这为将数据加载到矢量数据库提供了基础,有助于实现检索增强生成模式,使您能够将数据引入 AI 模型以纳入其响应中。

第一步:建项目:创建一个Spring Boot项目(JDK17起步);


第二步:加依赖

2.1 加入spring-ai-openai-spring-boot-starter依赖; 
<dependency><groupId>org.springframework.ai</groupId><artifactId>spring-ai-openai-spring-boot-starter</artifactId>
</dependency>
2.2 继承父项目:<dependencyManagement><dependencies><dependency><groupId>org.springframework.ai</groupId><artifactId>spring-ai-bom</artifactId><version>${spring-ai.version}</version><type>pom</type><scope>import</scope></dependency></dependencies>
</dependencyManagement>
2.3 配置项目依赖下载的仓库:(因为spring ai在中心仓库还没有依赖,所以需要去网站下载)
<repositories><repository><id>spring-milestones</id><name>Spring Milestones</name><url>https://repo.spring.io/milestone</url><snapshots><enabled>false</enabled></snapshots></repository>
</repositories>


 第三步:配文件(这个的api -key就是你自己的) 

  1. 注册OpenAI账号并获取API密钥

    要使用OpenAI的API,首先需要注册一个OpenAI账号,并在Dashboard中获取你的API密钥。这个密钥将用于后续的API调用中,以验证你的身份。

13k star! 获取免费ChatGPT API Key的开源项目,亲测可用!

spring:ai:openai:api-key:  (换成你的api-key)base-url: https://api.openai.com(分为代理地址和直连地址)


第四步: 聊天功能写具体的代码实现

  4.1 因为所有的接口的父接口都继承与Model,可以看到聊天方式的实现就是注入OpenAiChatModel 因为这个springboot自动装配的功能,只需要注入即可

 第一种: 聊天的第一种实现方式(调用call方法,直接传入msg,这个叫做同步API)
public class ChatController {@Resourceprivate OpenAiChatModel openAiChatModel;/*** 聊天的方法。底层调用的openAi的方法* RequestParam 接受参数* msg 就是我们提的问题* @return*/@RequestMapping("/ai/chat")public String chat(@RequestParam("msg") String msg){String called = openAiChatModel.call(msg);return called;}

   5.1 运行程序结果

 

2. 聊天与prompt template

如果使用openai,就注入openAiChatClient,如果使用ollama,就注入ollamaChatClient,然后调用call方法就可以了。

@Autowired
private ChatClient openAiChatClient;
@Autowired
private ChatClient ollamaChatClient;@GetMapping("/ai/simple")
public Map<String, String> completion(@RequestParam(value = "message", defaultValue = "Tell me a joke") String message) {return Map.of("generation", openAiChatClient.call(message));
}

 

 第二种 聊天的程序的第二种实现方式(调用call方法,new一个Prompt对象再传入msg)
/*** 聊天的方法。底层调用的openAi的方法* RequestParam 接受参数* msg 就是我们提的问题* ChatResponse 返回的是一个josn串* chatResponse.getResult().getOutput().getContent();只获取文本* @return*/@RequestMapping("/ai/chat2")public Object chat2(@RequestParam("msg") String msg){ChatResponse chatResponse = openAiChatModel.call(new Prompt(msg));return chatResponse.getResult().getOutput().getContent();}


  6.1  运行程序结果

第三种:聊天的程序的第三种实现方式(比上一个方法多了一个关于gpt参数的设置)
/***OpenAiChatOptions.builder() 传入的一个参数,可以控制大模型的设置* @param msg* @return*/@RequestMapping("/ai/chat3")public Object chat3(@RequestParam("msg") String msg){ChatResponse chatResponse = openAiChatModel.call(new Prompt(msg, OpenAiChatOptions.builder()//.withModel("gpt-4-32k")  //gpt的版本 ,32K是参数,参数越高,回答问题越准确.withTemperature(0.4F)  //温度值,温度越高,回答的准确率越低,温度越低,回答的准确率越高.build()));return chatResponse.getResult().getOutput().getContent();}


7.1 运行程序结果

当然上述的可选参数不仅可以在代码中配置,也可以在配置文件中配置

注意:如果代码中写了关于gpt的参数,配置文件中也配置了参数,那么以代码中为主

第四种:聊天的程序的第三种实现方式(调用stream方法,用法和call一样,只不过返回值不一样,Stream返回的是Fiux,叫做数据的序列一序列的数据,一个一个的数据返回,调用Stream叫做流式API)

/***OpenAiChatOptions.builder() gpt的可选参数* @param msg* @return*/@RequestMapping("/ai/chat4")public Object chat4(@RequestParam("msg") String msg){Flux<ChatResponse> flux = openAiChatModel.stream(new Prompt(msg, OpenAiChatOptions.builder()//.withModel("gpt-4-32k")  //gpt的版本 ,32K是参数,参数越高,回答问题越准确.withTemperature(0.4F)  //温度值,温度越高,回答的准确率越低,温度越低,回答的准确率越高.build()));return flux.collectList();}


上述就是关于Spring Boot 整合 Spring AI 实现项目接入ChatGPT,本文仅介绍了关于聊天方面的实现方式,接下来的文章介绍关于如何生成图片以及语言的转换。

 

http://www.hkea.cn/news/765128/

相关文章:

  • 手机网站开发 pdfseo搜索引擎优化工作内容
  • 上海中小网站建设洛阳seo博客
  • 南宁网站建设公司哪家专业搜索引擎优化包括
  • 新疆住房与建设厅网站新产品推广方式有哪些
  • 做网站站怎么赚钱网络营销模式有哪些?
  • 南通城市建设集团有限公司网站南京谷歌推广
  • 南通网站定制方案怎么查找关键词排名
  • 权大师的网站是哪个公司做的百度做个人简介多少钱
  • 烟台网站建设设计软文广告经典案例100字
  • 做微信用什么网站广州百度seo代理
  • 网站建设目标 优帮云跨境电商营销推广
  • 郑州华恩科技做网站怎么样竞价排名适合百度吗
  • flask做大型网站开发深圳seo博客
  • 合肥网站建设平台小程序怎么引流推广
  • 做网站被拘留免费找客源软件
  • 门户型网站建设百度seo快速提升排名
  • 印度做杂质的网站如何进行网络推广
  • 建设厅八大员兴安盟新百度县seo快速排名
  • 南京网站建设索q.479185700小说排行榜百度
  • 幼儿做爰网站seo工程师是什么职业
  • 申请空间 建立网站吗西安百度推广运营
  • 做花馍网站百度联盟
  • 沈阳建设企业网站google浏览器官网
  • 毕业论文 网站开发营销qq下载
  • 建网站要多长时间外贸网站优化
  • 苹果网站做的好的点电脑培训网上免费课程
  • 做网站开源互联网优化是什么意思
  • 模仿做网站b站上海热点新闻
  • phpcmsv9网站地图地推的60种方法
  • 湖南手机版建站系统哪个好百度网盘app怎么打开链接