完整教程:AI大模型开发(多模态+提示词)
接着之前的例子,继续测试模型对话,今天主要测试多模态加上系统提示词。
一.多模态
多模态方法,主要添加了对图片的测试。
public String chatWithMessage(UserMessage userMessage){
ChatResponse chatResponse = qwenChatModel.chat(userMessage);
AiMessage aiMessage = chatResponse.aiMessage();
log.info("AI输出: "+aiMessage.toString());
return aiMessage.text();
}
具体的可参考官方文档:https://docs.langchain4j.dev/tutorials/chat-and-language-models

测试方法中UserMessage对象添加了文本以及图片的url。
@Test
void chatWithMessage() {
UserMessage userMessage = UserMessage.from(
TextContent.from("描述图片信息"),
ImageContent.from("https://image.so.com/i?q=%E7%8C%B4%E5%AD%90%E7%9A%84%E7%9A%AE%E8%82%A4&listsrc=sobox&listsign=695ffcd9277f273b2114a9577b0f0298&src=360pic_strong")
);
aiHelper.chatWithMessage(userMessage);
}
测试结果:

测试通过了,但是千问模型并不支持多模态,无法解析图片,所以要想使用多模态的特性,还得使用支持多模态的模型。
二.系统提示词
定义一个全局的提示词,改造之前的普通对话方法,加上提示词。它可以和用户输入的消息一起传给大模型。
private static final String SYSTEM_MESSAGE = """
# Agent系统提示词模板
## 角色定位
Python数据分析专家
## 核心任务
提供即用型数据清洗与可视化代码解决方案
## 立即执行
直接输出完整可运行的Python代码
## 输出规范
- 格式:Markdown代码块
- 语言:中文注释
- 风格:PEP8规范
""" ;
public String chat(String messages){
SystemMessage systemMessage = SystemMessage.from(SYSTEM_MESSAGE);
UserMessage userMessage = UserMessage.from(messages);
ChatResponse chatResponse = qwenChatModel.chat(systemMessage,userMessage);
AiMessage aiMessage = chatResponse.aiMessage();
log.info("Ai 输出:"+aiMessage.toString());
return aiMessage.text();
}
测试结果:

可以看到,当用户不知道问啥的时候,Ai会给出指引。

浙公网安备 33010602011771号