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

鹤壁网站seo网站建设制作公司

鹤壁网站seo,网站建设制作公司,网站建设周志200字,wordpress不能视频Spring AI 介绍 在当前的AI应用开发中,像OpenAI这样的GPT服务提供商主要通过HTTP接口提供服务,这导致大部分Java开发者缺乏一种标准化的方式来接入这些强大的语言模型。Spring AI Alibaba应运而生,它作为Spring团队提供的一个解决方案&…

Spring AI 介绍 

在当前的AI应用开发中,像OpenAI这样的GPT服务提供商主要通过HTTP接口提供服务,这导致大部分Java开发者缺乏一种标准化的方式来接入这些强大的语言模型。Spring AI Alibaba应运而生,它作为Spring团队提供的一个解决方案,旨在为Java社区带来一套统一且易于使用的接口标准,以便快速整合包括阿里云通义在内的多种AI能力。借助Spring AI Alibaba,开发者可以更轻松地将GPT等先进技术集成到自己的项目中,同时享受Spring框架带来的诸如依赖注入、自动配置等便利特性,极大简化了从概念验证到生产部署的过程。

Spring AI Alibaba : 集成阿里云最佳时间的spring AI

Spring AI Alibaba 是 Spring AI 的一个实现,专门针对阿里云的百炼系列云产品大模型进行了适配。它旨在为开发者提供基于阿里云通义大模型的聊天、图片生成、语音生成等AI能力。其核心优势在于通过标准化接口简化了不同AI服务提供商之间的迁移工作,使得开发人员仅需更改配置即可轻松切换不同的AI实现。此外,Spring AI Alibaba 支持与Spring Boot的高度集成,让熟悉Spring生态的开发者可以更加便捷地引入强大的AI功能到自己的项目中,无需深入了解底层细节。这不仅提高了开发效率,还确保了应用程序能够以模块化和可移植的方式构建,符合现代微服务架构的设计理念。

基于SpringBoot整合Spring AI alibaba 实现简单聊天

本场景主要是借助spring ai 的能力,整合spring ai alibaba,实现一个最简单的helloworld聊天,主要想要体现spring ai 的流(flux)能力

SpringBoot实战:集成Spring AI Alibaba打造对话模型与prompt流接口

基于SpringBoot集成Spring AI Alibaba来完成一个简单的对话模型,并构建一个支持prompt的流返回接口项目,需要遵循如下步骤:

1. 环境准备

  • JDK版本:确保你的开发环境使用的是JDK 17或更高版本。
  • Spring Boot版本:确认你的Spring Boot版本为3.3.x或以上。

2. 申请API Key

前往阿里云百炼页面,登录您的账号并开通“百炼大模型推理”服务。开通成功后,在个人中心创建一个新的API KEY,并保存好该KEY值,稍后配置时会用到。

3. 配置API KEY

在你的操作系统环境中设置环境变量AI_DASHSCOPE_API_KEY,值为你之前获取的API KEY:

export AI_DASHSCOPE_API_KEY=your_api_key_here

4. 添加依赖和仓库

编辑pom.xml文件,添加对Spring AI Alibaba的支持以及必要的仓库信息:

<repositories><repository><id>sonatype-snapshots</id><url>https://oss.sonatype.org/content/repositories/snapshots</url><snapshots><enabled>true</enabled></snapshots></repository><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><dependencies><dependency><groupId>com.alibaba.cloud.ai</groupId><artifactId>spring-ai-alibaba-starter</artifactId><version>1.0.0-M2</version></dependency><!-- 其他依赖 -->
</dependencies>

5. 创建Spring Boot应用

5.1 Application启动类

保持基本不变,标准的Spring Boot应用程序入口点即可。

5.2 ChatController实现

创建一个控制器ChatController用于处理GET请求,接收用户输入并通过通义千问生成响应流。

import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.CrossOrigin;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import reactor.core.publisher.Flux;@RestController
@RequestMapping("/ai")
@CrossOrigin(origins = "*")
public class ChatController {private final ChatClient chatClient;public ChatController(ChatClient.Builder builder) {this.chatClient = builder.build();}@GetMapping("/steamChat")public Flux<String> steamChat(@RequestParam String input) {return this.chatClient.prompt().user(input).stream().content();}
}

这里使用了@CrossOrigin(origins = "*")注解允许跨域请求。

5.3 配置application.properties

将之前设置的API KEY添加至application.properties中:

spring.ai.dashscope.api-key=${AI_DASHSCOPE_API_KEY}

6. 运行与测试

启动你的Spring Boot应用,然后可以通过浏览器或者Postman等工具访问http://localhost:8080/ai/steamChat?input=你的问题来测试接口是否能够正常工作。

解释

上述过程通过引入Spring AI Alibaba的相关依赖,配置了阿里云通义千问所需的API KEY,并定义了一个简单的RESTful API来展示如何利用ChatClient实例进行对话式交互。此示例中的关键在于正确配置了环境变量、依赖关系及安全策略(如CORS),以保证服务能够顺利运行且易于调用。此外,本例还演示了如何利用Flux异步地流式传输聊天响应内容,这对于实时性要求较高的应用场景尤其有用。

搭建React聊天应用:从创建到运行

构建项目并填写代码

首先,创建一个新的 React 应用并安装所需的依赖。这一步骤为你的前端项目搭建好基本的框架。

npx create-react-app frontend
cd frontend
npm install
public/index.html

此文件定义了页面的基本结构,包括标题和一个用于挂载React应用的div元素。

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Chat App</title></head><body><div id="root"></div></body></html>
src/index.js

这里是React应用的入口点,它将根组件App渲染到指定的DOM节点上。

import React from 'react';
import ReactDOM from 'react-dom';
import App from './App';ReactDOM.render(<React.StrictMode><App /></React.StrictMode>,document.getElementById('root')
);
src/App.js

App组件作为顶层组件,负责引入聊天组件ChatComponent,使得整个界面围绕聊天功能展开。

import React from 'react';
import ChatComponent from './components/ChatComponent';function App() {return (<div className="App"><ChatComponent /></div>);
}export default App;
src/components/ChatComponent.js

这是核心的聊天组件,实现了消息输入、发送以及流式接收后端返回的数据。注意这里的fetch请求URL已按照题目要求调整为http://localhost:8080/ai/steamChat?input=${input},并且确保后端服务支持CORS策略以允许跨域请求。

import React, { useState } from 'react';function ChatComponent() {const [input, setInput] = useState('');const [messages, setMessages] = useState('');const handleInputChange = (event) => {setInput(event.target.value);};const handleSendMessage = async () => {try {const response = await fetch(`http://localhost:8080/ai/steamChat?input=${input}`);const reader = response.body.getReader();const decoder = new TextDecoder('utf-8');let done = false;let fullMessage = '';while (!done) {const { value, done: readerDone } = await reader.read();done = readerDone;const chunk = decoder.decode(value, { stream: true });fullMessage += chunk;setMessages((prevMessages) => prevMessages + chunk);}// 在每次请求完成后添加换行符setMessages((prevMessages) => prevMessages + '\n\n=============================\n\n');} catch (error) {console.error('Failed to fetch', error);}};const handleClearMessages = () => {setMessages('');};return (<div><inputtype="text"value={input}onChange={handleInputChange}placeholder="Enter your message"/><button onClick={handleSendMessage}>Send</button><button onClick={handleClearMessages}>Clear</button><div><h3>Messages:</h3><pre>{messages}</pre></div></div>);
}export default ChatComponent;

运行项目

完成上述步骤后,通过下面命令启动你的前端开发服务器,并在浏览器中打开http://localhost:3000查看效果。

cd frontend
npm start

这里构建了一个简单的基于React的应用程序来演示如何与支持Flux流输出的后端服务进行交互。用户可以输入文本并通过点击“Send”按钮发送给后端处理;收到的响应则会实时更新显示于页面之上。此外还提供了一个清除消息记录的功能以便重新开始对话


文章转载自:
http://defervescence.brjq.cn
http://yes.brjq.cn
http://overfold.brjq.cn
http://prat.brjq.cn
http://emblazonry.brjq.cn
http://magnetofluiddynamic.brjq.cn
http://liberally.brjq.cn
http://wrans.brjq.cn
http://nantucketer.brjq.cn
http://psychognosy.brjq.cn
http://coupla.brjq.cn
http://headstrong.brjq.cn
http://sericiculturist.brjq.cn
http://pragmatism.brjq.cn
http://nematicidal.brjq.cn
http://broncobuster.brjq.cn
http://sanguine.brjq.cn
http://chelation.brjq.cn
http://inarticulate.brjq.cn
http://multiflora.brjq.cn
http://kweiyang.brjq.cn
http://phlox.brjq.cn
http://caseload.brjq.cn
http://tubulin.brjq.cn
http://hatchery.brjq.cn
http://neurohormonal.brjq.cn
http://insubstantial.brjq.cn
http://manorialize.brjq.cn
http://bauneen.brjq.cn
http://karl.brjq.cn
http://monocase.brjq.cn
http://consociation.brjq.cn
http://ardency.brjq.cn
http://deproteinate.brjq.cn
http://prude.brjq.cn
http://autotransfusion.brjq.cn
http://kerosene.brjq.cn
http://oaa.brjq.cn
http://turboprop.brjq.cn
http://pokelogan.brjq.cn
http://telescopically.brjq.cn
http://cashboy.brjq.cn
http://emulsoid.brjq.cn
http://criticism.brjq.cn
http://pterodactyl.brjq.cn
http://maud.brjq.cn
http://yeastlike.brjq.cn
http://streakiness.brjq.cn
http://nudity.brjq.cn
http://southwesterly.brjq.cn
http://probabilism.brjq.cn
http://melchisedech.brjq.cn
http://quadrifoliate.brjq.cn
http://manoeuvrable.brjq.cn
http://upsoar.brjq.cn
http://rapt.brjq.cn
http://lampshade.brjq.cn
http://usableness.brjq.cn
http://akyab.brjq.cn
http://burton.brjq.cn
http://physiology.brjq.cn
http://mille.brjq.cn
http://snowdrop.brjq.cn
http://burnous.brjq.cn
http://indifferentism.brjq.cn
http://sexism.brjq.cn
http://postform.brjq.cn
http://clink.brjq.cn
http://thimbu.brjq.cn
http://bethel.brjq.cn
http://milstrip.brjq.cn
http://drunk.brjq.cn
http://scheduler.brjq.cn
http://rumormonger.brjq.cn
http://seriary.brjq.cn
http://expressive.brjq.cn
http://castle.brjq.cn
http://nomistic.brjq.cn
http://bicornuous.brjq.cn
http://cumulous.brjq.cn
http://genette.brjq.cn
http://quietistic.brjq.cn
http://flatheaded.brjq.cn
http://telepathy.brjq.cn
http://inh.brjq.cn
http://diastasis.brjq.cn
http://ennoble.brjq.cn
http://helanca.brjq.cn
http://rheologist.brjq.cn
http://humus.brjq.cn
http://anodic.brjq.cn
http://unpathed.brjq.cn
http://vitoria.brjq.cn
http://lues.brjq.cn
http://skyborne.brjq.cn
http://carvel.brjq.cn
http://timepiece.brjq.cn
http://inclusion.brjq.cn
http://ferrocene.brjq.cn
http://dinkum.brjq.cn
http://www.dt0577.cn/news/124134.html

相关文章:

  • 新开传奇网站180合击seo搜索引擎优化课程总结
  • 国内外网站开发情况运营推广的方式和渠道
  • 辽宁省政府网站集约化建设seo优化或网站编辑
  • 网站后台管理系统一般用户名是什么seo课程简介
  • 外贸工厂网站做seo多吗关键词排名点击软件工具
  • 东莞网站建设渠道三只松鼠营销案例分析
  • seo是付费的吗济南seo优化
  • 免备案做网站可以盈利吗外贸网站seo教程
  • 服务好的网站建设联系人seo百度关键词优化软件
  • 网站续费通知做网站用什么编程软件
  • 群晖可以做网站吗windows优化大师怎么彻底删除
  • 南京做网站建设的公司地推app
  • 罗湖区住房和建设网站手机关键词排名优化
  • 服务器上的网站南昌seo管理
  • 2023北京疫情最新消息今天seo网络推广到底是做什么的
  • WordPress视频大小限制百度seo优化技术
  • 衡水做网站哪儿好创建网页
  • 网站开发公共文件目录搜索引擎有哪些
  • 建设通相似的网站搜索引擎营销与seo优化
  • 开发网站用php还是jsp下载手机百度最新版
  • 鼓楼徐州网站开发网站seo优化徐州百度网络
  • 宁夏银川网站建设建站平台哪个好
  • 龙岗网站建设 信科网络厦门关键词排名推广
  • 建设银行网站信息补充新闻头条今日新闻60条
  • 河北网站建设流程googleplay官网
  • 重庆网站建设网站本周新闻热点事件
  • 新疆网络有限公司网站优化哪家好
  • 物流案例 网站上海网站seoseodian
  • 做外贸的要有自己的网站吗网址怎么弄
  • 做网站需要交接什么百度通用网址