当前位置: 首页 > 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/933435/

相关文章:

  • windows2008做网站网站首页打开速度
  • 做外贸要做什么网站服装设计图
  • 中山市路桥建设有限公司网站网站开发角色分配权限
  • 加强档案网站建设网站搭建好了不用会不会被攻击
  • 维护网站信息网络建设服务
  • 网站建设策划书模板下载用自己电脑配置服务器做网站
  • 360免费建站空间淘宝数据网站开发
  • 做分销的网站本地dede网站怎么上线
  • 中学网站模板北京管理咨询公司
  • 网站开发用哪个软件方便二级网站建设 管理思路
  • 个人怎么创建网站中国建设银行网站口
  • 跟知乎一样的网站做展示网站步骤
  • 邯郸网站建设效果好wordpress app 加载慢
  • 做app的网站有哪些功能广州自适应网站建设
  • 兰州建设网站的网站开源网站建设
  • 深圳网站建设南山指数基金是什么意思
  • 备案中又需要建设网站网站信息组织优化
  • 做网站推广需要什么asp响应式h5网站源码下载
  • 柳州建设网官方网站免费自助建站哪个平台好
  • 论坛网站模板源码下载网站建设与网页设计是什么
  • 跑流量的网站淘宝网站的建设目标是
  • 网站计费系统怎么做九一制作网站
  • 网红营销推广温州seo博客
  • 临沂网站制作定制现在比较流行的软件开发模型
  • 南宁企业建站系统做问卷调查哪个网站好
  • 能打开各种网站的浏览器推荐建设部的网站首页
  • 苏州高端网站建设开发wordpress 删除图片
  • saas网站开发外贸网站设计风格
  • c 手机网站开发湘阴网页定制
  • 阿里云虚拟主机搭建wordpressWordPress优化手机端