使用 Jupyter Notebook 运行 Spring AI 代码示例

在使用 Spring AI 开发 GenAI 应用时,经常会参考 Python 相关的代码。没办法,在 GenAI 上的支持,Python 比 Java 要好不少。LangChain,LlamaIndex 这些Python 库,很多 GenAI 应用开发都在用。在 GitHub 上可以找到很多的代码示例。

很多代码示例都是用 Jupyter Notebook 写的。Jupyter Notebook 的确是很好用的。可视化的编辑方式,文档和代码结合在一起,可以直接运行,还可以保存结果。非常适合于编写代码示例,并展示运行结果。

c8cddc9dfd2dcb704bb38093fb50b05d.png

在我写 Spring AI 代码示例的时候,也想要这样的东西。我就找有没有 Java 的 Jupyter kernel。在 Jupyter 的官网上,确实找到了列出来的 Java kernel。不过这些 kernel 都是社区维护的,感觉也不怎么稳定。有些都比较长时间没有更新了。

081b1897db84164b54c6a384af0e2709.png

然后我就看到 Kotlin 的 kernel。这个 kernel 是由 Kotlin 官方维护的,质量和更新速度都有保障。我就打算用这个了。

39802e1ce87f4d89046b2bea020181a9.png

用 conda 安装了之后,运行 Jupyter notebook,选择 Kotlin 作为 kernel 就可以了。

conda install -c jetbrains kotlin-jupyter-kernel

下面是 Notebook 启动之后的效果。

961cf23b9f584cec2643c9200b282842.png

我用 Jupyter notebook 写了几个 Spring AI 的例子,下面用一个例子来说明。这个例子是用 Spring AI 调用 Ollama 来实现最简单的聊天功能。

首先需要添加相关的依赖。注解 @file:Repository 的作用是添加 Maven 仓库。@file:DependsOn 的作用是声明运行时所需要的 Maven 依赖。这里声明了使用 spring-ai-ollama 的 1.0.0-M2 版本。

@file:Repository("https://repo1.maven.org/maven2")
@file:Repository("https://repo.spring.io/milestone/")
@file:DependsOn("org.springframework.ai:spring-ai-ollama:1.0.0-M2")

添加了依赖之后,下一步就可以直接写 Kotlin 代码并运行。这一步与平常写 Kotlin 代码并没有声明区别。

import org.springframework.ai.chat.client.ChatClient
import org.springframework.ai.ollama.OllamaChatModel
import org.springframework.ai.ollama.api.OllamaOptions
import org.springframework.ai.ollama.api.OllamaApi


val chatClient = ChatClient.builder(OllamaChatModel(OllamaApi())).build()
val options = OllamaOptions.builder().withModel("llama3.2:1b").build()
val output = chatClient.prompt().user("who are you?").options(options).call().content()
println(output)

直接运行这个代码块,就可以看到输出结果。下面是在 Notebook 中编辑和运行的效果。

78216d357e387ee0650e41bc181aed81.png

Notebook  发布到 GitHub 之后,可以直接在 GitHub 上预览,这样就方便了阅读。下面是在 GitHub 上的预览效果。

172b1e501a46cc842d4357cb6d327e2b.png

我写的几个 Spring AI 的代码示例,可以在 GitHub 上找到(alexcheng1982/spring-ai-examples)。如果对使用 Spring AI 开发 RAG 应用感兴趣,可以关注我的付费课程。AI 大模型的检索增强生成 - Spring AI 实现。也可以点击【阅读原文】来查看。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值