首页 > 其他分享 >【langchain4j接入springboot项目】想学AI平台接入?langchain4j,是不二的选择

【langchain4j接入springboot项目】想学AI平台接入?langchain4j,是不二的选择

时间:2024-10-29 14:51:12浏览次数:6  
标签:langchain4j springboot 接入 springframework chat import org public String

一、项目结构

二、示例代码

1.Calulator.java

package org.ivy.aiservice.func;

import dev.langchain4j.agent.tool.Tool;
import org.springframework.stereotype.Component;

@Component
public class Calculator {

    @Tool("Calculates the length of a string")
    int stringLength(String s) {
        System.out.println("Called stringLength with s='" + s + "'");
        return s.length();
    }

    @Tool("Calculates the sum of two numbers")
    int add(int a, int b) {
        System.out.println("Called add with a=" + a + ", b=" + b);
        return a + b;
    }

    @Tool("Calculates the square root of a number")
    double sqrt(int x) {
        System.out.println("Called sqrt with x=" + x);
        return Math.sqrt(x);
    }
}

2.Assistant.java

package org.ivy.aiservice.service;

import dev.langchain4j.service.spring.AiService;
import dev.langchain4j.service.spring.AiServiceWiringMode;

/**
 * 通过 @AiService 注解声明一个 AI 助手接口,并指定 chatModel 为 openAiChatModel。
 */
@AiService(
        wiringMode = AiServiceWiringMode.EXPLICIT,
        chatModel = "openAiChatModel",
        tools = {"calculator"}
)
public interface Assistant {
    String chat(String userMessage);
}


3.ChatController.java

package org.ivy.aiservice;

import org.ivy.aiservice.service.Assistant;
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;

@RequestMapping("/hl")
@RestController
public class ChatController {
    private final Assistant assistant;

    public ChatController(Assistant assistant) {
        this.assistant = assistant;
    }

    @GetMapping("/chat")
    public String chat(
            @RequestParam(value = "prompt",
                    defaultValue = "What is the square root of the sum of the numbers of letters in the words \"hello\" and \"world\"?")
            String prompt) {
        return assistant.chat(prompt);
    }
}

4.ChatExamplesApplication.java

package org.ivy;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class ChatExamplesApplication {
    public static void main(String[] args) {
        SpringApplication.run(ChatExamplesApplication.class, args);
    }
}

5.application.yml

base-url与api-key填入自己的即可

server:
  port: 8801
spring:
  application:
    name: chat-high-level-service
langchain4j:
  open-ai:
    chat-model:
      api-key: xxxx
      model-name: gpt-4o-mini
      base-url:xxxx
      log-requests: true
      log-responses: true
    streaming-chat-model:
      api-key: xxxx
      base-url: xxxx
      model-name: gpt-4o-mini

标签:langchain4j,springboot,接入,springframework,chat,import,org,public,String
From: https://blog.csdn.net/weixin_57166266/article/details/143309618

相关文章

  • SpringBoot区域特色产品营销推广平台cd554--程序+源码+数据库+调试部署+开发环境
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容一、研究背景与意义在全球化与信息化交织的今天,区域特色产品作为地方文化、经济的重要载体,面临着前所未有的发展机遇与挑战。一方面,消费者对于独特......
  • SpringBoot青少年心理健康服务bpro6--程序+源码+数据库+调试部署+开发环境
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表用户,咨询师,咨询师信息,在线咨询,预约信息,分析报告,心理测试,提交测试,测试评分开题报告内容一、课题名称青少年心理健康服务体系建设研究二、研究背景及意......
  • SpringBoot黔西南旅游景点信息交流平台7p1x5(程序+源码+数据库+调试部署+开发环境)
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表用户,景点类型,美食类型,景点信息,美食信息,酒店信息,线路信息,景点购票,美食购买,酒店预订开题报告内容一、项目背景黔西南布依族苗族自治州位于中国贵州省西......
  • NVR设备ONVIF接入平台EasyCVR视频分析设备平台视频质量诊断技术与能力
    视频诊断技术是一种智能化的视频故障分析与预警系统,NVR设备ONVIF接入平台EasyCVR通过对前端设备传回的码流进行解码以及图像质量评估,对视频图像中存在的质量问题进行智能分析、判断和预警。这项技术在安防监控领域尤为重要,因为它能够确保监控系统的正常运行,提高视频监控的可靠性和......
  • springboot限制上传文件大小,nginx出现413
    spring.servlet.multipart.enabled=true:启用文件上传功能。spring.servlet.multipart.max-file-size=2MB:设置单个文件的最大大小为2MB。spring.servlet.multipart.max-request-size=10MB:设置包含所有文件的请求的最大大小为10MB。 如果使用了nginx,需要在配置设置到http{}......
  • 萤石设备视频接入平台EasyCVR私有化部署视频平台高速公路视频上云的高效解决方案
    经济的迅猛发展带来了高速公路使用频率的激增,其封闭、立交和高速的特性变得更加显著。然而,传统的人工巡查方式已不足以应对当前高速公路的监控挑战,监控盲点和响应速度慢成为突出问题。比如,非法占用紧急车道的情况屡见不鲜,却因缺乏即时监控和确凿证据,给执法带来了不小的挑战。在许......
  • SpringBoot实现的扶贫成效监测平台
    摘要随着信息技术在管理上越来越深入而广泛的应用,管理信息系统的实施在技术上已逐步成熟。本文介绍了精准扶贫管理系统的开发全过程。通过分析精准扶贫管理系统管理的不足,创建了一个计算机管理精准扶贫管理系统的方案。文章介绍了精准扶贫管理系统的系统分析部分,包括可行性......
  • 精准帮扶:SpringBoot扶贫管理系统
    摘要随着信息技术在管理上越来越深入而广泛的应用,管理信息系统的实施在技术上已逐步成熟。本文介绍了精准扶贫管理系统的开发全过程。通过分析精准扶贫管理系统管理的不足,创建了一个计算机管理精准扶贫管理系统的方案。文章介绍了精准扶贫管理系统的系统分析部分,包括可行性......
  • 扶贫工作数字化:SpringBoot精准扶贫系统
    2相关技术2.1MYSQL数据库MySQL是一个真正的多用户、多线程SQL数据库服务器。是基于SQL的客户/服务器模式的关系数据库管理系统,它的有点有有功能强大、使用简单、管理方便、安全可靠性高、运行速度快、多线程、跨平台性、完全网络化、稳定性等,非常适用于Web站点或者其他......
  • SpringBoot精准扶贫:农村发展新动力
    2相关技术2.1MYSQL数据库MySQL是一个真正的多用户、多线程SQL数据库服务器。是基于SQL的客户/服务器模式的关系数据库管理系统,它的有点有有功能强大、使用简单、管理方便、安全可靠性高、运行速度快、多线程、跨平台性、完全网络化、稳定性等,非常适用于Web站点或者其他......