Spring+LangChain4j小智医疗项目

LangChain4j入门

LangChain4j 是一个用于构建基于大型语言模型(LLM)应用的 Java 框架,它简化了与 OpenAI、Hugging Face 等 LLM 服务的集成,并提供了工具链来构建复杂的 LLM 应用。

配置

<dependency>
  	 <groupId>dev.langchain4j</groupId>
     <artifactId>langchain4j-open-ai-spring-boot-starter</artifactId>
     <version>1.0.0-beta3</version>
</dependency>

在yml配置api_key,base_ur,model_name必需项
一般将APIKEY保存在系统环境变量中,用System.getenv()获取

测试

	@Autowired
    private OpenAiChatModel openAiChatModel;

    @Test
    public void testChat() {
   
   
        String question = "java的特性";
        String ans = openAiChatModel.chat(question);
        System.out.println(ans);

    }

Ollama

Ollama是一个允许开发者在本地计算环境中运行模型的工具。

  1. 选择模型:
    在这里插入图片描述
  2. 输入命令行 ollama run deepseek-r1:1.5b
  3. 本地项目配置
<dependency>
    <groupId>dev.langchain4j</groupId>
    <artifactId>langchain4j-ollama</artifactId>
    <version>1.0.0-beta3</version>
</dependency>

阿里云百炼平台

在线集成了阿里的通义系列大模型和第三方大模型,涵盖文本、
图像、音视频等不同模态。
依赖

<dependency>
   	<groupId>dev.langchain4j</groupId>
    <artifactId>langchain4j-community-dashscope-spring-boot-starter</artifactId>
</dependency>

在官网申请API-Key

langchain4j:
  community:
    dashscope:
      chat-model:
        api-key: sk-66xxxxxxx
        model-name: qwen-max

AIService

<dependency>
	<groupId>dev.langchain4j</groupId>
	<artifactId>langchain4j-spring-boot-starter</artifactId>
</dependency>

AIService用于格式化输入,解析输出,记忆聊天等功能。

  1. 创建接口
package com.atguigu.java.ai.langchain4j.assistant;
public interface Assistant {
   
   
	String chat(String userMessage);
}
  1. 创建类测试
@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
### 关于JLama和LangChain4j在Java项目中的实战示例 #### JLama的实际应用案例 JLama 是 Meta 开发的 Llama 模型系列的一个实现版本,专注于高性能推理能力。在 Java 项目中集成 JLama 可以为用户提供强大的自然语言处理功能。虽然官方文档较少提及 Java 的具体支持情况,但可以通过 JNI 或 GraalVM Native Image 技术将 Python 版本的 JLama 集成到 Java 应用程序中[^1]。 以下是基于 JNI 调用 JLama 的简单代码示例: ```java public class JlavaWithJLama { static { System.loadLibrary("jlama"); // 加载本地库 } public native String generateText(String input); public static void main(String[] args) { JlavaWithJLama jlamawrapper = new JlavaWithJLama(); String result = jlamawrapper.generateText("Explain the concept of gravity."); System.out.println(result); } } ``` 此方法依赖于预先编译好的 C/C++ 动态链接库,并将其封装为可调用的 Java 方法。 --- #### LangChain4j的实际应用案例 LangChain4j 提供了一个灵活的框架用于构建复杂的 AI 流水线,在 Spring 和 Quarkus 中的应用尤为广泛。其核心特性包括模型参数调整、链式操作定义以及与主流大模型的良好兼容性[^3]。 下面是一个简单的 LangChain4j 使用示例,展示如何通过 `application.properties` 文件配置 OpenAI GPT-3.5-turbo 参数并生成文本: ##### application.properties 配置 ```properties langchain.model=openai-gpt-3.5-turbo langchain.api.key=your-api-key-here langchain.temperature=0.7 langchain.maxTokens=200 ``` ##### Java 代码示例 ```java import ai.langchain.ChatCompletion; import ai.langchain.LangChain; public class LangChainExample { public static void main(String[] args) throws Exception { LangChain chain = LangChain.builder().build(); // 自动加载 properties 配置 ChatCompletion chatCompletion = chain.createChatCompletion( "What is the capital city of France?", null, null ); System.out.println(chatCompletion.getChoices().get(0).getMessage().getContent()); } } ``` 上述代码展示了如何快速初始化 LangChain 并完成一次对话请求。开发者还可以进一步扩展流水线逻辑,例如引入记忆模块或自定义提示模板。 --- #### 结合Spring AI简化开发流程 随着 Spring AI 的发布,开发者能够更加便捷地将大型语言模型 (LLM) 集成至现有的 Java 微服务架构中。借助 Spring Initializr 工具,只需几步即可生成包含预设依赖的基础工程结构[^2]。 以下是如何使用 Spring AI 创建一个基础 RESTful 接口的例子: ##### 添加依赖项 在 Maven `pom.xml` 文件中加入如下片段: ```xml <dependency> <groupId>org.springframework.ai</groupId> <artifactId>spring-ai-core</artifactId> <version>0.0.1-SNAPSHOT</version> </dependency> ``` ##### 控制器类设计 ```java @RestController @RequestMapping("/api/v1/generate") public class TextGenerationController { @Autowired private LanguageModelService modelService; // 基于 Spring AI 注入的服务组件 @PostMapping public ResponseEntity<String> generate(@RequestBody Map<String, String> payload) { try { String prompt = payload.get("prompt"); String response = modelService.generate(prompt); // 调用生成接口 return ResponseEntity.ok(response); } catch (Exception e) { return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body(e.getMessage()); } } } ``` 这种做法显著降低了学习门槛,使得即使是初学者也能迅速搭建起具备基本功能的 AI 应用程序。 --- ### 总结 无论是通过 JNI 将 JLama 引入 Java 生态还是直接采用 LangChain4j 构建端到端解决方案,当前的技术栈都提供了丰富的可能性来满足不同场景下的需求。与此同时,Spring AI 的推出更是让整个过程变得更加直观易懂。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值