Milvus, Java, 奥拉玛, LLama 3.2, ADS-B, Langchain4J, Milvus Java SDK, 向量数据库, 开源
广播式自动相关监视 (ADS-B)
我一直在尝试使用Milvus Java SDK和Langchain4J来构建一些应用程序,以将我老旧的Java应用程序现代化升级,并迁移到Milvus和AI驱动的应用程序。接下来将是使用Spring AI构建应用程序,以及一些现成的与Apache Pulsar和Apache Kafka集成的应用程序,以将这些应用程序迁移到Milvus和AI驱动的应用程序。
第一个 Java 应用 RagLoader 会从我们用 Python 笔记本加载的 liveplanes 集合中查询最多 16,384 行数据行。它会过滤掉那些 “flightidentifier != ‘NA’” 的数据行,这会移除那些没有航班标识符的飞机数据。这些很可能是没有商业用途的飞机。
我们检查结果
for (QueryResp.QueryResult result : insertList.getQueryResults()) {
并创建一个新的 JsonObject 来存储一些有用的元数据,例如 ICAO、高度、速度、经纬度和航班ID。这些字段例如 ICAO、高度、速度、经纬度、航班ID 都很有用,我们可能需要它们来进行后续的过滤。我们接着添加必要的 RAG 字段,比如 id、text 和 vector。我们接着将这些数据发送到插入操作,现在我们有了可以用来运行 Java RAG 应用程序的记录。
Java RAG(增强检索生成LangChain4J)我们将使用由Ollama托管并在我的Mac上本地运行的模型,名为llama3.2:3b-instruct-fp16。
首先,我们配置我们的嵌入存储系统:
EmbeddingStore<TextSegment> embeddingStore = MilvusEmbeddingStore.builder()
.uri("http://MYDOCKERORLOCATION:19530")
.collectionName("aircraftrag")
.dimension(384) // 维度为384
.build();
接下来我们来搭建聊天窗口。
interface Assistant {
对话(String 用户消息);
}
接着我们连接到本地的 Ollama 服务器。
// 创建一个聊天模型实例,配置模型服务地址和参数
ChatLanguageModel chatModel = OllamaChatModel.builder()
.baseUrl("http://localhost:11434")
.modelName("llama3.2:3b-instruct-fp16")
.temperature(0.0)
.build();
我们开启服务,并将所有东西连接起来。
// 创建一个AI助手实例,设置对话语言模型、会话记忆和内容检索器
Assistant assistant = AiServices.builder(Assistant.class)
.chatLanguageModel(chatModel)
.chatMemory(MessageWindowChatMemory.withMaxMessages(10))
.contentRetriever(EmbeddingStoreContentRetriever.from(embeddingStore))
.build();
最后,我们得到了回复。
assistant根据提示进行聊天,并将回答赋值给answer。
_参数_通过命令行传递的。
通过像这样的 shell 脚本调用如下:
// 这个命令用于编译并运行名为 "dev.datainmotion.Aircraft" 的Java类,传递的第一个参数为'$1'
mvn compile exec:java -Dexec.mainClass="dev.datainmotion.Aircraft"
-Dexec.args="'$1'"
我们终于用Java开发了一个RAG应用程序。
堆栈- Milvus v2.11 单机版 Docker
- ollama 版本为 0.3.12
- JDK 22 (OpenJDK 64-Bit Server VM Temurin-22.0.2+9)
- Apache Maven 3.9.6
- langchain4j-ollama 0.35.0
- langchain4j-milvus 0.35.0
- milvus-sdk-java 2.4.4
- slf4j-api 1.7.30
- 操作系统:"mac os x",版本:"13.6.7",架构:"aarch64",系统系列:mac
找找
加载RAG数据集
带有Ollama的RAG系统(RAG,检索和生成的缩写)
这里是数据 ***使用llama3.2:3b-instruct-fp16模型回答Ollama的问题:
****问题=告诉我关于A320的一些信息
****回答如下=
以下是关于这两种飞机的一些关键信息:
**A320 AAY1207**
* 飞机型号:空客A320
* 航空公司:美国的阿尔勒特航空
* 位置:40.285282, -74.290799
* 高度:
+ 气压高度:35,000英尺
+ 地形高度:37,000英尺
* 速度:510.0英里/小时
* 图片网址:https://airport-data.com/images/aircraft/001/668/001668328.jpg
**A321 AAL1164**
* 飞机型号:空客A321
* 航空公司:美国的美国航空
* 位置:40.23347, -74.456281
* 高度:
+ 气压高度:9,875英尺
+ 地形高度:10,200英尺
* 速度:306.2英里/小时
* 图片网址:https://airport-data.com/images/aircraft/001/600/001600717.jpg
资源(比如文档和工具等)
LangChain4j | 描述将放入 docs.langchain4j.dev 的元标签里
GitHub - milvus-io/milvus-sdk-java: Milvus的Java SDK
通过在GitHub上创建账户参与milvus-io/milvus-sdk-java的开发。
GitHub - tspannhw/AIM-ADS-B: 基于 AI 和 Milvus 的 ADS-B 航空器跟踪。加入 GitHub 并为项目贡献代码。 PlanesRESOURCESmedium.com 纽约的非结构化数据聚会10月23日(周三)下午5:30到8:30
纽约无结构数据Meetup活动 · Luma这是一场现场活动,需要提前注册。主题:将你的无结构数据与…连接起来共同學習,寫下你的評論
評論加載中...
作者其他優質文章