• 使用spring-ai快速对接ChatGpt


    什么是spring-ai

    该Spring AI项目旨在简化包含人工智能功能的应用程序的开发,避免不必要的复杂性。

    项目从著名的 Python 项目(例如 LangChain 和 LlamaIndex)中汲取灵感,但 Spring AI 并不是这些项目的直接移植。该项目的成立相信下一波生成式人工智能应用程序不仅适用于 Python 开发人员,而且将在许多编程语言中普遍存在。

    Spring AI 的核心提供了抽象,作为开发 AI 应用程序的基础。这些抽象有多种实现,可以通过最少的代码更改轻松进行组件交换。

    Spring AI 提供以下功能:

    • 支持所有主要模型提供商,例如 OpenAI、Microsoft、Amazon、Google 和 Huggingface。
    • 支持的模型类型包括“聊天”和“文本到图像”,还有更多模型类型正在开发中。
    • 跨 AI 提供商的可移植 API,用于聊天和嵌入模型。支持同步和流 API 选项。还支持下拉访问模型特定功能。
    • AI 模型输出到 POJO 的映射。
    • 支持所有主要矢量数据库提供商,例如 Azure 矢量搜索、Chroma、Milvus、Neo4j、PostgreSQL/PGVector、PineCone、Qdrant、Redis 和 Weaviate
    • 跨 Vector Store 提供商的可移植 API,包括同样可移植的新颖的类似 SQL 的元数据过滤器 API。
    • 函数调用
    • AI 模型和向量存储的 Spring Boot 自动配置和启动器。
    • 数据工程的 ETL 框架

    OpenAI 聊天

    Spring AI 支持 OpenAI 的 AI 语言模型 ChatGPT。由于创建了行业领先的文本生成模型和嵌入,ChatGPT 在激发人们对人工智能驱动的文本生成的兴趣方面发挥了重要作用。

    先决条件

    需要使用 OpenAI 创建 API (访问此网址需要魔法)来访问 ChatGPT 模型。在OpenAI 注册页面创建帐户并在API 密钥页面生成令牌(生成令牌需要国外手机号验证码:国外免费接码平台推荐_国外手机号短信验证码平台-CSDN博客)。 Spring AI 项目定义了一个名为的配置属性,应该将其设置为从 openai.com 获取spring.ai.openai.api-key的值。

    第一步:打开专业版idea并新建项目

    第二步:添加这二个依赖项后点击创建

    第三步:在application.properties配置相关东西

    1. spring.application.name=demo_ai
    2. spring.ai.openai.api-key=这里写自己申请的gpt的api
    3. spring.ai.openai.chat.options.model=gpt-3.5-turbo
    4. spring.ai.openai.chat.options.temperature=0.7

    第四步:新建个 ChatController的Java类

    1. package org.example.demo_ai;
    2. import org.springframework.ai.chat.ChatResponse;
    3. import org.springframework.ai.chat.messages.UserMessage;
    4. import org.springframework.ai.chat.prompt.Prompt;
    5. import org.springframework.ai.openai.OpenAiChatClient;
    6. import org.springframework.beans.factory.annotation.Autowired;
    7. import org.springframework.web.bind.annotation.GetMapping;
    8. import org.springframework.web.bind.annotation.RequestParam;
    9. import org.springframework.web.bind.annotation.RestController;
    10. import reactor.core.publisher.Flux;
    11. import java.util.Map;
    12. @RestController
    13. public class ChatController {
    14. private final OpenAiChatClient chatClient;
    15. @Autowired
    16. public ChatController(OpenAiChatClient chatClient) {
    17. this.chatClient = chatClient;
    18. }
    19. @GetMapping("/ai/generate")
    20. public Map generate(@RequestParam(value = "message", defaultValue = "Tell me a joke") String message) {
    21. return Map.of("generation", chatClient.call(message));
    22. }
    23. @GetMapping("/ai/generateStream")
    24. public Flux generateStream(@RequestParam(value = "message", defaultValue = "Tell me a joke") String message) {
    25. Prompt prompt = new Prompt(new UserMessage(message));
    26. return chatClient.stream(prompt);
    27. }
    28. }

    第五步:运行springboot项目,并在Postman测试接口

    注意

    还有更多的属性可以自行前往官网查看

  • 相关阅读:
    pytorch -- torch.nn.Module
    HTL6033是一款专用于3串锂电池或聚合物电池的保护芯片
    2023年全国职业院校技能大赛(高职组)“云计算应用”赛项赛卷9(私有云)
    【C++进阶之路】第八篇:智能指针
    美团MTCTF 2022 ret2libc_aarch64 pwn解
    Git下载,安装与环境配置
    idea Springboot 图书管理系统VS开发mysql数据库web结构java编程计算机网页源码maven项目
    高压功率放大器是什么东西
    基于吉萨金字塔建造优化算法GPC求解最优目标的MATLAB代码
    spark sql createOrReplaceTempView
  • 原文地址:https://blog.csdn.net/m0_74293254/article/details/137999032