Langchain4j AIService (2)

部署运行你感兴趣的模型镜像

人工智能服务 AIService

AIService简介

什么是AIService

AIService使用面向接口和动态代理的方式完成程序的编写,更灵活的实现高级功能。

  • 链Chain(旧版)

链的概念源自 Python 中的 LangChain。其理念是针对每个常见的用例都设置一条链,比如聊天机器人、

检索增强生成(RAG)等。链将多个底层组件组合起来,并协调它们之间的交互。链存在的主要问题是不

灵活,我们不进行深入的研究。

  • 人工智能服务AIService

在LangChain4j中我们使用AIService完成复杂操作。底层组件将由AIService进行组装。

AIService可处理最常见的操作

  • 为大语言模型格式化输入内容

  • 解析大语言模型的输出结果

  • 支持更高级的功能

    聊天记忆 Chat memory

    工具 Tools

    检索增强生成 RAG

接入并创建AIService

接入AIService

  • 引入依赖

    <!--langchain4j高级功能-->
    <dependency>
        <groupId>dev.langchain4j</groupId>
        <artifactId>langchain4j-spring-boot-starter</artifactId>
    </dependency>
    

创建AIService

手动创建AIService
  • 创建接口

    public interface Assistant {
        String chat(String userMessage);
    }
    
  • 测试用例

    @SpringBootTest
    public class AIServiceTest {
        @Autowired
        private QwenChatModel qwenChatModel;
        @Test
        public void testChat() {
            //创建AIService
            Assistant assistant = AiServices.create(Assistant.class, qwenChatModel);
            //调用service的接口
            String answer = assistant.chat("Hello");
            System.out.println(answer);
        }
    }
    
使用@AiService创建
  • 创建接口

    // 因为我们在配置文件中同时配置了多个大语言模型,所以需要在这里明确指定(EXPLICIT)模型的beanName(qwenChatModel)
    @AiService(wiringMode = EXPLICIT, chatModel = "qwenChatModel")
    public interface Assistant {
        String chat(String userMessage);
    }
    
  • 测试用例

    @Autowired
    private Assistant assistant;
    
    @Test
    public void testAssistant() {
        String answer = assistant.chat("Hello");
        System.out.println(answer);
    }
    

工作原理

AiServices会组装Assistant接口以及其他组件,并使用反射机制创建一个实现Assistant接口的代理对象

这个代理对象会处理输入和输出的所有转换工作。在这个例子中,chat方法的输入是一个字符串,但是大

模型需要一个 UserMessage 对象。所以,代理对象将这个字符串转换为 UserMessage ,并调用聊天语

言模型。chat方法的输出类型也是字符串,但是大模型返回的是 AiMessage 对象,代理对象会将其转换

为字符串。

简单理解就是:代理对象的作用是输入转换和输出转换

您可能感兴趣的与本文相关的镜像

Python3.8

Python3.8

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值