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

摄影网站的建设的论文亚马逊seo是什么意思

摄影网站的建设的论文,亚马逊seo是什么意思,如何学做网站,海南省建设集团有限公司AI的使用目前已经非常普遍了,那么作为程序员的我们,改如何在自己的项目中集成AI相关的功能呢? 1. 获取apikey和baseurl 想要完成一次AI的api调用,我们必须要在官网中获取身份认证信息apikey和请求的url,这里更推荐阿…

AI的使用目前已经非常普遍了,那么作为程序员的我们,改如何在自己的项目中集成AI相关的功能呢?

1. 获取apikey和baseurl

想要完成一次AI的api调用,我们必须要在官网中获取身份认证信息apikey和请求的url,这里更推荐阿里云百炼平台,不仅包含阿里自己研发的通义千问大模型,还包括很多其他模型的调用。尤其是在deepseek官网api目前不够稳定的情况下,阿里云百炼还能稳定的提供deepseek相关的模型调用接口。最重要的是新人开通免费给大量的使用token,非常适合新人学习或尝鲜。

1.1 首先进入阿里云官网(https://www.aliyun.com/),登录账号,完成个人认证。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

1.2 在产品中选择百炼,进入百炼平台

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

点击管理控制台进入

在这里插入图片描述

1.3 开通阿里云百炼

新人右下角应该有开通提示,或者其他地方有提示,记不清了,反正只要完成个人认证,就能进行开通,获取大量的试用token

在这里插入图片描述

1.4 获取baseurl

在模型广场中有api调用示例,可以在其中获取baseurl

在这里插入图片描述

在这里插入图片描述

1.5 获取apikey

点击右上角用户图标,进入apikey界面

在这里插入图片描述

选择创建我的apikey,即可获取

在这里插入图片描述

2. 使用AI信箱工具,完成AI调用

在获取了请求地址和apikey之后,就可以开始调用AI接口了,不过AI接口调用的请求体和请求头的组装,以及AI信息的管理,都非常繁琐,这里我推荐使用AI信箱工具来完成这一过程。

AI信箱致力于封装复杂,但逻辑基本重复的AI调用功能以及对于AI交互信息的管理功能,让程序开发者能够像AI使用者一样,只需要向API发送一句话,即可以得到根据上下文信息推演的AI回答。AI信箱主要向调用者提供两个功能:

  • 对多AI的访问接口维护,只需要通过简单的配置和方法调用,即可完成对多种AI接口的一次完整调用。
  • 是对用户和AI交互信息的维护。

2.1 调用前准备

  1. 在pom文件中添加如下依赖
<dependency><groupId>io.gitee.du-xiuhuan</groupId><artifactId>ai-mailbox</artifactId><version>1.0.1</version>
</dependency>
  1. 在springboot主类上引入启动类
//通过import注解引入MailBoxStarter启动类
@Import(MailBoxStarter.class)
@SpringBootApplication(scanBasePackages = "com.mailbox")
public class BaichuanAiServerApplication {public static void main(String[] args) {SpringApplication.run(BaichuanAiServerApplication.class, args);}}
  1. 添加相关配置
# datasource
spring.datasource.url=jdbc:postgresql://127.0.0.1:/mailbox
spring.datasource.username=
spring.datasource.password=
spring.datasource.driver-class-name=org.postgresql.Driver#apikeyList记录了所有模型请求时所对应的apikey,需要自行从官网,获取。AI信箱获取apikey的逻辑是;分割多个对应关系,:分割对应关系的左右两侧。所有队对于某些提供了多AI接口调用的平台(如阿里云百炼),可以将多个AI写入:左侧,然后只提供一个apikey即可。
mailbox.apikeyList=deepseek-r1,deepseek-v3,qwen-plus,qwen-max,qwen-turbo,qwen-long:sk-447fdcdhasacuaewnicwcaooica3fbbb87b;
#原理同上,记录了对应模型需要请求的url
mailbox.urlList=deepseek-r1,deepseek-v3,qwen-plus,qwen-max,qwen-turbo,qwen-long:https://dashscope.aliyuncs.com/compatible-mode/v1/chat/completions;
#不同的接口提供防,虽然提供的请求体参数类似,但是请求体中消息的排列顺序却有不同。默认以阿里云百炼提供的为准,也就是时间正序排列,新发的消息在下面,对于一些相反的平台(如deepseek官网),可以将这个参数设置为true,反转消息顺序。
mailbox.build-request-body.is-reserver=false

2.2 使用AI信箱发起AI调用

AI信箱对AI的接口调用逻辑进行了封装,这使得开发者只需要调用简单的方法调用即可完成一次Ai接口调用,实例如下:

import io.gitee.duxiuhuan.mailbox.outter.TalkWithAIUtils;
import io.gitee.duxiuhuan.mailbox.service.entries.QuestionResult;
import io.gitee.duxiuhuan.mailbox.utils.IdUtils;
import io.gitee.duxiuhuan.mailbox.service.entries.QuestionResult;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.web.servlet.mvc.method.annotation.StreamingResponseBody;@Service
public class QuestionServiceimpl implements QuestionService {//引入AI信箱的AI对话工具类@AutowiredTalkWithAIUtils talkWithAIUtils;@Overridepublic QuestionResult question(String message, Long userId, Long sessionId, String model) {if (sessionId == null ){sessionId = IdUtils.generateId();}//直接调用question方法,传入用户说的话,用户id,当前用户对话所在的会话id,想要交流的模型,以及表id(对于AI的信息管理需要分表,实例中是基于用户分表,具体分表后面会说)Long tableId = userId;return talkWithAIUtils.question(message, userId, sessionId, model, tableId);}@Overridepublic StreamingResponseBody questionStream(String message, Long userId, Long sessionId, String model) {if (sessionId == null ){sessionId = IdUtils.generateId();}//调用questionStream方法可以调用AI对话的流式接口,该方法返回了一个StreamingResponseBody类型实例,这是Springmvc提供的流式接口方案,直接将返回的StreamingResponseBody类型实例响应给客户端,即可实现逐字返回给客户端,当然你也可以对其进行封装,具体需要了解springmvc的相关知识。Long tableId = userId;return talkWithAIUtils.questionStream(message, userId, sessionId, model, tableId);}
}

通常AI接口调用需要将上下文信息全部传入,维护,查询,使用这些信息都相当麻烦。AI信箱内部对这些信息进行了管理,并且在调用时自动查询相关上下文,组成请求体,这使得开发者只需要传入最新的对话,既可以得到关联上下文的AI推演结果。一条完整的信息结构如下:

public class MessageInfo {//信息id(唯一)private Long id;//当前信息的所属用户id(AI调用时不发挥作用)private Long userId;//会话id(可以自定义概念,比如说你想要在聊天室中加入AI,可以一个聊天室作为一个sessionId)private Long sessionId;//判断当前信息是用户还是AI发出的private Integer userOrSystem;//是哪个模型的回答private String model;//具体信息内容private String content;//创建时间private Date createTime;
}

除此之外,对于大量的信息,不能单单只靠一张数据库表来进行处理,不同情况下,需要不同的分表来提供更良好的查询性能,开发者需要自行管理分表逻辑,并给每个逻辑单元对应一条表ID(就是AI交互功能是传入的最后一个参数)。AI信息会基于这个ID去创建对应的表。(注意,分表的最小单元是sessionId,也就是相同的sessionId不能被分到不同的表中);

AI信箱提供统一工具类来让开发者可以灵活的使用这些信息,实例如下:

import io.gitee.duxiuhuan.mailbox.database.entries.MessageInfo;
import io.gitee.duxiuhuan.mailbox.outter.MessageManagerUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.*;@Service
public class SessionServiceimpl {//引入消息管理工具类@AutowiredMessageManagerUtils messageManagerUtils;public List<MessageInfo> getContent(Long userId, Long sessionId) {//组成messageInfo实例,用来进行查询MessageInfo messageInfo = new MessageInfo();messageInfo.setSessionId(sessionId);//调用selectMessage方法,传入表名和messageInfo实例Long tableId = userId;List<MessageInfo> messageInfos = messageManagerUtils.selectMessage(tableId, messageInfo);return messageInfos;}}

除此之外,还提供对信息的增删功能,都是MessageManagerUtils工具类的方法,示例如下:

package com.mailbox.server.service.impl;import io.gitee.duxiuhuan.mailbox.database.entries.MessageInfo;
import io.gitee.duxiuhuan.mailbox.outter.MessageManagerUtils;
import com.mailbox.server.database.SessionMapper;
import com.mailbox.server.database.entries.Session;
import com.mailbox.server.service.SessionService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;import java.util.*;@Service
public class SessionServiceimpl extends ServiceImpl<SessionMapper, Session> implements SessionService {@AutowiredMessageManagerUtils messageManagerUtils;@Overridepublic List<MessageInfo> getContent(Long userId, Long sessionId) {//根据会话id查询会话表内容MessageInfo messageInfo = new MessageInfo();messageInfo.setSessionId(sessionId);Long tableId = userId;//传入表ID,以及按照MessageInfo类的属性组成查询信息,即可获取对应的消息列表List<MessageInfo> messageInfos = messageManagerUtils.selectMessage(tableId, messageInfo);return messageInfos;}}

AI信息也提供QueryTableUtils工具类,用来对表的增删改查,推荐开发者在表逻辑单元创建时调用对应方法生成表,不过即使你不这样做,AI信箱也会在发现表不存在时尝试创建它。

3. 结语

AI信箱gitee地址:https://gitee.com/du-xiuhuan/ai-mailbox

如果感觉好用,麻烦点一个star;

如果在使用中遇到什么问题,可以在当前帖子进行评论,或在gitee中提出issue,问题会尽量在一周内解决;

http://www.dtcms.com/wzjs/232065.html

相关文章:

  • 计算机多媒体毕业设计网站建设网络推广员岗位职责
  • 邯郸吧厦门百度推广排名优化
  • 苏州网站seo服务关键词搜索排名查询
  • 网络公司建设网站国外免费网站服务器
  • 陕西建设执业中心网站百度公司招聘官网
  • led营销型网站建设百度付费问答平台
  • 有模版之后怎么做网站百度关键词推广可以自己做吗
  • 自己做的网站某个网页打开很慢建站系统有哪些
  • 建设银行手机查询网站如何使用免费b站推广网站
  • 宜州市住房保障和城乡建设局网站短视频seo优化
  • dnf做任务解除制裁网站seo中文意思是
  • 厦门网页建设公司谷歌seo和百度seo
  • 网站编辑工具品牌策划方案
  • 网站开发包括网站过程百度推广电话客服24小时
  • 香港网站大陆速度百度官网优化
  • 网站建设怎样宣传比较好在广州做seo找哪家公司
  • 免费开商城网站吗产品网络推广的方法
  • 组建网站 多少钱优化建站
  • 北京贸易公司网站制作飓风seo刷排名软件
  • 哪些网站做微课赚钱小网站关键词搜什么
  • 上海学做网站seo推广教程视频
  • 广安网站建设免费b站推广网站有哪些
  • 更换网站后台免费推广链接
  • 深圳网站建设 卓营销推广外包
  • wordpress登录用户错乱北京中文seo
  • 邯郸网站开发公司如何做seo搜索引擎优化
  • 建设展示型网站公司哪家好seo是什么意思如何实现
  • 给朋友做网站警察开找技能培训有哪些
  • python做网站赚钱seo招聘要求
  • 企业网站功能网站宣传