调研Mistral大模型历程(1)

149 阅读2分钟

一、遇到的问题

1. pom.xml文件改写

①Q:java版本过低,模型无法接入

A:原来的版本是今年10月份下载的jdk1.8,编译的时候发现版本过低无法使用,换成了jdk23;顺带要close project后调整maven的位置。

②编译helloworld时出现日志无法打印:

A:添加如下两个依赖:

11.22.PNG

2.调用Mistral大模型

①API获取Mistral AI - Dashboard - La Plateforme

②按照langchain4j示例,导入langchain4j依赖和langchain4j-mistral-ai依赖

③Q:已经获取了api但是无法导入或者识别不出来?

A:不能按照langchain4j示例:SET MISTRAL_AI_API_KEY=your-api-key #For Windows,因为这个是一次性的,只保证当前对话(网上是这么说,总之意思就是不永恒,而且用这个设置我的API导入没有一次成功过)。

直接在cmd里改为:SETX MISTRAL\_AI\_API\_KEY=your-api-key ,这个就相当于配置了用户的环境变量,可以用echo %MISTRAL\_AI\_API\_KEY%验证,返回的就是your-api-key。需要注意的是,有时候一两次返回的不是api,需要多试几次,或者重启!(我的API导入成功就是在重启之后)。

③.modelName(MistralAiChatModelName.MISTRAL_SMALL_LATEST)出现无法识别模型名称(符号)?

A:解决方法是 import dev.langchain4j.model.mistralai.MistralAiChatModelName;

3. 四种Message

ChatMessage: 在 LangChain 4J 中通常指的是一次对话中的一个消息或发言。它包含了在对话中由用户或系统产生的一个具体的文本信息。ChatMessage通常包含了文本内容本身以及可能的附加信息,比如发送者的身份、发送时间等。

在连续对话的场景下,ChatMessage 是 ChatMemory 的基本存储单位。对话历史通常会被表示为一系列 ChatMessage 的集合,这样模型在生成回复时就可以考虑到整个对话的上下文信息。

UserMessage:用户发的信息

SystemMessage:由系统根据某些逻辑或事件自动生成的(包装后的信息)

AiMessage:人工智能回复的消息。

在写代码的时候用到了Response<AiMessage>,而不是直接AiMessage,这两个不是一个类型。具体区别可以查看Response (LangChain4j :: Aggregator 0.37.0-SNAPSHOT API)