package com.iwe3.langchain4j.service;

import com.iwe3.langchain4j.entity.LawPrompt;
import dev.langchain4j.service.SystemMessage;
import dev.langchain4j.service.UserMessage;
import dev.langchain4j.service.V;
import dev.langchain4j.service.spring.AiService;

/**
 * 一个法律解释助手
 */
@AiService(chatModel = "qwen")
public interface LawExplainAssistant {

    //案例3 当提示词过多，也可以将从外部资源加载
    @SystemMessage(fromResource = "prompt-template.txt")
    String chat(LawPrompt lawPrompt);

    //案例2 新建带着@StructuredPrompt的业务实体类，比如LawPrompt
//    @SystemMessage("你是一位专业的中国法律顾问，只回答与中国法律相关的问题。" +
//            "输出限制：对于其他领域的问题禁止回答，直接返回'抱歉，我只能回答中国法律相关的问题。'")
//    String chat(LawPrompt lawPrompt);


    // @SystemMessage : 定AI-LLM 的角色，任务，风格，格式
    // @UserMessage : 用户提示词
    // @V : 超过1个以上参数，需要起别名
    //案例1 @SystemMessage + @UserMessage + @V
    @SystemMessage("你是一位专业的中国法律顾问，只回答与中国法律相关的问题。" +
            "输出限制：对于其他领域的问题禁止回答，直接返回'抱歉，我只能回答中国法律相关的问题。'")

    @UserMessage("请回答以下法律问题：{{question}},字数控制在{{length}}以内")
    String chat(@V("question") String question, @V("length") int length);




}
