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

网站建设平台哪个公司好天津网站建设专家

网站建设平台哪个公司好,天津网站建设专家,合肥建设集团信息网站,网上智慧团建网站登录文章目录 JAVA实现人工智能,采用框架SpringAISpring AI介绍使用介绍项目前提项目结构第一种方式采用openai1. pom文件#xff1a; 2. application.yml 配置3.controller 实现层 项目测试 JAVA实现人工智能,采用框架SpringAI Spring AI介绍 Spring AI是AI工程师的一个应用框架… 文章目录 JAVA实现人工智能,采用框架SpringAISpring AI介绍使用介绍项目前提项目结构第一种方式采用openai1. pom文件 2. application.yml 配置3.controller 实现层 项目测试 JAVA实现人工智能,采用框架SpringAI Spring AI介绍 Spring AI是AI工程师的一个应用框架它提供了一个友好的API和开发AI应用的抽象旨在简化AI应用的开发工序例如开发一款基于ChatGPT的对话应用程序。 目前该项目已经集成了OpenAI、Azure OpenAI、Hugging Face、Ollama等API。不过对于集成了OpenAI接口的项目只要再搭配One-API项目就可以调用目前主流的大语言模型了。 使用介绍 在介绍如何使用Spring AI开发一个对话接口之前我先介绍下ChatGPT应用的开发原理。 首先ChatGPT是OpenAI推出的一款生成式人工智能大语言模型OpenAI为了ChatGPT能够得到广泛应用向开发者提供了ChatGPT的使用接口开发者只需使用OpenAI为开发者提供的Key向OpenAI提供的接口地址发起各种形式的请求就可以使用ChatGPT。因此开发一款ChatGPT应用并不是让你使用人工智能那套技术进行训练和开发而是作为搬运工通过向OpenAI提供的ChatGPT接口发起请求来获取ChatGPT响应基于这一流程来开发的。 项目前提 本人已经本地部署chatglm3-6boneapi 项目环境 项目结构 ​ 第一种方式采用openai 1. pom文件 SpringAI 官网 新版本由于我本地chatglm3-6b openai 接口实现暂不支持请求体解析所以使用0.8.1-SNAPSHOT 版本进行集成 dependencygroupIdorg.springframework.ai/groupIdartifactIdspring-ai-bom/artifactIdversion1.0.0-SNAPSHOT/versiontypepom/typescopeimport/scope /dependencyproject xmlnshttp://maven.apache.org/POM/4.0.0 xmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsdmodelVersion4.0.0/modelVersionparentgroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-parent/artifactIdversion3.2.4/versionrelativePath/ !-- lookup parent from repository --/parentgroupIdcom.lvyuanj.core/groupIdartifactIdmicro-open-ai/artifactIdversion1.0-SNAPSHOT/versionpropertiesproject.build.sourceEncodingUTF-8/project.build.sourceEncoding/propertiesdependencyManagementdependenciesdependencygroupIdorg.springframework.ai/groupIdartifactIdspring-ai-bom/artifactIdversion0.8.1-SNAPSHOT/versiontypepom/typescopeimport/scope/dependency/dependencies/dependencyManagementdependenciesdependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter/artifactId/dependencydependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-web/artifactId/dependencydependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-test/artifactIdscopetest/scope/dependencydependencygroupIdorg.springframework.ai/groupIdartifactIdspring-ai-openai/artifactId/dependencydependencygroupIdorg.springframework.ai/groupIdartifactIdspring-ai-openai-spring-boot-starter/artifactId/dependencydependencygroupIdorg.springframework.ai/groupIdartifactIdspring-ai-ollama-spring-boot-starter/artifactId/dependency/dependenciesrepositoriesrepositoryidspring-milestones/idnameSpring Milestones/nameurlhttps://repo.spring.io/milestone/urlsnapshotsenabledfalse/enabled/snapshots/repositoryrepositoryidspring-snapshots/idnameSpring Snapshots/nameurlhttps://repo.spring.io/snapshot/urlreleasesenabledfalse/enabled/releases/repository/repositoriesbuildpluginsplugingroupIdorg.springframework.boot/groupIdartifactIdspring-boot-maven-plugin/artifactId/plugin/plugins/build /project2. application.yml 配置 spring:ai:openai:api-key: XXXXXXXXXXXXXXXXXXXXXXbase-url: XXXXXXXXXXXXXXXXXXXXXXXchat:enabled: trueoptions:model: chatglm3-6btemperature: 0.3F # 温度越高回答得比较有创新性但是准确率会下降温度越低回答的准确率会更好#ollama模型ollama:api-key: XXXXXXXXXXXXXXXXXXXXbase-url: XXXXXXXXXXXXXXXXXXXXXXXXXchat:enabled: falseoptions:model: chatglm3-6b 3.controller 实现层 package com.lvyuanj.core.ai.controller;import jakarta.annotation.Resource; import org.springframework.ai.chat.ChatResponse; import org.springframework.ai.chat.prompt.Prompt; import org.springframework.ai.openai.OpenAiChatClient; import org.springframework.ai.openai.OpenAiChatOptions; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; import reactor.core.publisher.Flux;RestController RequestMapping(open-ai) class OpenAiController {Resourceprivate OpenAiChatClient openAiChatClient;/*** 调用OpenAI的接口-默认参数* param msg* return*/GetMapping(/chat)public String completion(RequestParam(msg) String msg) {return openAiChatClient.call(msg);}/*** 调用OpenAI的接口-默认参数* param msg-输入的文本* return*/RequestMapping(value /chat2)public Object chat2(RequestParam(value msg) String msg) {ChatResponse chatResponse openAiChatClient.call(new Prompt(msg));return chatResponse.getResult().getOutput().getContent();}/*** 调用OpenAI的接口-自定义参数* param msg-输入的文本* return*/RequestMapping(value /chat3)public Object chat3(RequestParam(value msg) String msg) {//可选参数在配置文件中配置了在代码中也配置了那么以代码的配置为准也就是代码的配置会覆盖掉配置文件中的配置ChatResponse chatResponse openAiChatClient.call(new Prompt(msg, OpenAiChatOptions.builder()//.withModel(gpt-4-32k) //gpt的版本32k是参数量.withTemperature(0.4F) //温度越高回答得比较有创新性但是准确率会下降温度越低回答的准确率会更好.build()));return chatResponse.getResult().getOutput().getContent();}/*** 调用OpenAI的接口-流式接口* param msg-输入的文本* return*/RequestMapping(value /chat4)public Object chat4(RequestParam(value msg) String msg) {//可选参数在配置文件中配置了在代码中也配置了那么以代码的配置为准也就是代码的配置会覆盖掉配置文件中的配置FluxChatResponse flux openAiChatClient.stream(new Prompt(msg, OpenAiChatOptions.builder()//.withModel(gpt-4-32k) //gpt的版本32k是参数量.withTemperature(0.4F) //温度越高回答得比较有创新性但是准确率会下降温度越低回答的准确率会更好.build()));flux.toStream().forEach(chatResponse - {System.out.println(chatResponse.getResult().getOutput().getContent());});return flux.collectList(); //数据的序列一序列的数据一个一个的数据返回}/*** 字转向量进行数据查询**/PostMapping(/embedding)public void pgQuery(RequestBody ListString wordList) {EmbeddingRequest embeddingRequest new EmbeddingRequest(wordList, OpenAiEmbeddingOptions.builder().build());EmbeddingResponse response openAiEmbeddingClient.call(embeddingRequest);ListDouble wordVectors response.getResult().getOutput();ListFloat vectors wordVectors.stream().map(o - o.floatValue()).collect(Collectors.toList());Object[] neighborParams new Object[] { new PGvector(vectors) };ListMapString, Object rows jdbcTemplate.queryForList(SELECT * FROM modeldata ORDER BY embedding - ? LIMIT 5, neighborParams);if (Objects.nonNull(rows) rows.size() 0) {for (MapString, Object row : rows) {for (Map.EntryString, Object entry : row.entrySet()) {String key entry.getKey();Object value entry.getValue();System.out.println(key:key ,value: value);}}}}}项目测试 接下来继续接入文字、图片、视频对接实现
http://www.w-s-a.com/news/561625/

相关文章:

  • 长沙网站建设搭建网络营销做得好的公司
  • 如何做网站的后台管理石家庄seo关键词排名
  • 给自己公司做个网站山东做外贸网站的公司
  • 张家港网站建设培训江苏省建设工程网站系统
  • html个人网站桂林建站
  • 湛江网站优化快速排名wordpress文章页面宽度
  • 自己建网站怎么弄唯品会一家专门做特卖的网站
  • 做文化传播公司网站做搜狗pc网站点
  • 免费的黄冈网站有哪些平台可以聊天呢要查询一个网站在什么公司做的推广怎么查
  • 凡客建站登录入口网站建设先进部门评选标准
  • 响应式设计 手机网站政务中心建设网站
  • 如何做卖衣服的网站网站登录接口怎么做
  • 网站源码下载了属于侵权吗499全包网站建设
  • 怎样创建网站信息平台网络推广官网首页
  • 网站建设的课程网站 逻辑结构
  • 开通企业网站搬瓦工暗转wordpress
  • 成都网站建设有名的公司怎么做出有品牌感的网站
  • 中国网站的建设淘宝数据网站开发
  • 深圳建站网站模板wordpress 文章最长
  • 服务器建立网站建网站做seo
  • 帮人做彩票网站支付接口网上请人做软件的网站
  • 万全网站建设wl17581做旅游广告在哪个网站做效果好
  • 钢城网站建设安徽省住房和城乡建设厅网站
  • 协会网站建设方案大良营销网站建设好么
  • 网站引导页一般是什么格式网页设计师的应聘岗位
  • 构建网站空间网站开发与维护招聘
  • 网站建设的网页怎么做番禺网站开发哪家强
  • 网站开发是程序员吗百度网盘下载电脑版官方下载
  • 中国电力建设集团网站杭州网站运营
  • 大气网站模板下载效果好的网站建设公