GitHub 上的 agents-flex 项目:基�?Java �?LLM 应用开发框�?

  • 戳上方蓝字�?太阳鸟不会飞*”关注我

    大家好,我是太阳鸟!今天要给大家介绍一个基�?Java �?LLM(大语言模型)应用开发框架—�?agents-flex*。这个项目为开发者提供了一个强大的工具,用于快速构建和部署 LLM 应用�?

*项目简�?

agents-flex 是一个基�?Java �?LLM 应用开发框架,旨在简化大语言模型的应用开发流程。它提供了丰富的功能和模块,支持多种大语言模型和图片生成模型,适用于各种应用场景�?

基本能力

  • •�?LLM 的访问能�?:支持多种大语言模型,包�?OpenAI、通义千问、讯飞星火等�?

  • •�?Prompt、Prompt Template 定义加载的能�?:灵活的提示和模板定义,方便定制化开发�?

  • •�?Function Calling 定义、调用和执行等能�?:支持函数调用,实现更复杂的功能�?

  • •�?记忆的能力(Memory�?:支持记忆功能,实现对话的上下文管理�?

  • •�?Embedding*:支持向量化处理,方便文本相似度计算�?

  • •�?Vector Store*:支持向量存储,适用于大规模数据处理�?

  • •�?文档处理*:支持多种文档处理功能,包括加载器、分割器和解析器�?

  • •�?加载器(Loader�?:支�?Http �?FileSystem 加载�?

  • •�?分割器(Splitter�?:支持文档分割�?

  • •�?解析器(Parser�?:支�?PoiParser �?PdfBoxParser�?

  • •�?Chain 执行�?:支持多种执行链,包括顺序执行链、并发执行链、循环执行链等�?

*简单对话示�?

使用 OpenAI 大语言模型�?

`@Test
publicvoidtestChat() {
    OpenAiLlmConfigconfig=newOpenAiLlmConfig();
    config.setApiKey(“sk-rts5NF6n*******”);

    Llmllm=newOpenAiLlm(config);
    Stringresponse= llm.chat(“请问你叫什么名�?);

    System.out.println(response);
}`使用 “通义千问�?大语言模型�?

`@Test
publicvoidtestChat() {
    QwenLlmConfigconfig=newQwenLlmConfig();
    config.setApiKey(“sk-28a6be3236****”);
    config.setModel(“qwen-turbo”);

    Llmllm=newQwenLlm(config);
    Stringresponse= llm.chat(“请问你叫什么名�?);

    System.out.println(response);
}`使用 “讯飞星火�?大语言模型�?

`@Test
publicvoidtestChat() {
    SparkLlmConfigconfig=newSparkLlmConfig();
    config.setAppId(““);
    config.setApiKey(“
“);
    config.setApiSecret(“****”);

    Llmllm=newSparkLlm(config);
    Stringresponse= llm.chat(“请问你叫什么名�?);

    System.out.println(response);
}`### 历史对话示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
`public staticvoidmain(String[] args) {
    SparkLlmConfigconfig=newSparkLlmConfig();
    config.setAppId("****");
    config.setApiKey("****");
    config.setApiSecret("****");

    Llmllm=newSparkLlm(config);

    HistoriesPromptprompt=newHistoriesPrompt();

    System.out.println("您想问什么?");
    Scannerscanner=newScanner(System.in);
    StringuserInput= scanner.nextLine();

    while (userInput != null) {

        prompt.addMessage(newHumanMessage(userInput));

        llm.chatStream(prompt, (context, response) -> {
            System.out.println(">>>> " + response.getMessage().getContent());
        });

        userInput = scanner.nextLine();
    }
}`

Function Calling 示例

*第一�?:通过注解定义本地方法

`public class WeatherUtil {

    @FunctionDef(name = “get_the_weather_info”, description = “get the weather info”)
    public static String getWeatherInfo(
        @FunctionParam(name = “city”, description = “the city name”) String name
    ) {
        // 在这里,我们应该通过第三方接口调�?api 信息
        return name + “的天气是阴转多云�?”;
    }
}`*第二�?:通过 Prompt、Functions 传入给大模型,然后得到结�?

`public staticvoidmain(String[] args) {

    OpenAiLlmConfigconfig=newOpenAiLlmConfig();
    config.setApiKey(“sk-rts5NF6n*******”);

    OpenAiLlmllm=newOpenAiLlm(config);

    FunctionPromptprompt=newFunctionPrompt(“今天北京的天气怎么�?, WeatherUtil.class);
    FunctionResultResponseresponse= llm.chat(prompt);

    Objectresult= response.getFunctionResult();

    System.out.println(result);
    //“北京的天气是阴转多云�?”
}`### *生态支�?

  • •�?大语言模型*:支持多种大语言模型,包�?ChatGPT、Ollama、星火大模型、通义千问等�?

  • •�?图片生成模型*:支持多种图片生成模型,包括 OpenAI、Stability、GiteeAI 等�?

  • •�?Function Calling 方法调用*:支持多种大语言模型的函数调用�?

  • •�?多模�?:支持多种多模态模型�?

  • •�?向量化模�?:支持多种向量化模型�?

  • •�?向量存储(向量数据库�?:支持多种向量数据库,包�?Milvus、阿里云向量数据存储服务、腾讯云向量数据存储服务等�?

  • •�?文档解析�?:支持多种文档解析器,包�?PDFBox、POI、OmniParse �?

模块构成

总结

agents-flex 是一个功能强大的 LLM 应用开发框架,适用于各种应用场景。它提供了丰富的功能和模块,支持多种大语言模型和图片生成模型,为开发者提供了极大的便利�?

获取途径:agents-flex GitHub 地址

https://github.com/agents-flex/agents-flex

感谢大家的支持,希望 agents-flex 能为你的 LLM 应用开发带来便利�?

推荐阅读

�?  github 95.5k Star 的项目集合地�?  4�?16G 就能 RAGFlow Quick start 快速入门

*我是太阳鸟�?

98年在职技术型博主

搞钱干货|自媒体运营|DeepSeek|AI变现

(扫码后自动发送《DeepSeek免部署使用指南》,�?0人赠AI副业资料包)

每日更新,期待与你一起成�?

欢迎围观高质量的副业知识星球