导读:构建可以与 Llama 3.2 等先进大语言模型进行聊天的 CLI 。了解 Rust 和 Ollama 库如何让这一切变得轻而易举。
作为一名学习 Rust 的开发人员,我想构建一个实用项目来应用我的新技能。随着 Anthropic 的 Llama 3.2 等大型语言模型的兴起,我认为创建一个 Rust 命令行界面 (CLI) 来与模型交互会非常有趣。
仅用几分钟,我就能够使用 Ollama Rust 库组装一个可用的 CLI。这个CLI被我称为“Jarvis”,它允许您与 Llama 3.2 聊天,以及执行一些基本命令,例如检查时间、日期和列出目录内容。
在这篇文章中,我将介绍 Jarvis CLI 的关键组件,并解释如何使用Rust与 Llama 3.2 或其他大型语言模型进行交互。最后,您将看到 Rust 的性能和表现力如何使其成为 AI 应用程序的绝佳选择。
定义可用的命令
验证命令和打印帮助文本的方法
解析命令行参数
根据命令调用适当的函数
- 获取当前时间
date - 获取今天的日期
你好 - 打印可定制的问候语
ls——列出目录内容
chat - 使用 Ollama lib 与 Llama 3.2 交互
以下是该代码的精简版本:
struct JarvisConfig {
commands: Vec<&'static str>,
}
impl JarvisConfig {
fn new() -> Self {...}
fn print_help(&self) {...}
fn is_valid_command(&self, command: &str) -> bool {...}
}
#[tokio::main]
async fn main() {
let config = JarvisConfig::new();
let args: Vec
= env::args().collect();
match args[1].as_str() {
"time" => {...}
"date" => {...}
"hello" => {...}
"ls" => {...}
"chat" => {
let ollama = Ollama::default();
match ollama
.generate(GenerationRequest::new(
"llama3.2".to_string(),
args[2].to_string(),
))
.await
{
Ok(res) => println!("{}", res.response),
Err(e) => println!("Failed to generate response: {}", e),
}
}
_ => {
println!("Unknown command: {}", args[1]);
config.print_help();
}
}
}
使用 Ollama 与 Llama 3.2 聊天最有趣的部分是“聊天”命令,它使用 Ollama Rust 库与 Llama 3.2 交互。
将 Ollama 依赖项添加到 Cargo.toml 后,使用它非常简单:
使用默认设置创建 Ollama 实例:
let ollama = Ollama::default();
就是这样!只需几行代码,我们就可以向 Llama 3.2 发送提示并接收生成的响应。
GenerationRequest::new(
"llama3.2".to_string(),
args[2].to_string()
)
第二个示例。
match ollama.generate(...).await {
Ok(res) => println!("{}", res.response),
Err(e) => println!("Failed to generate response: {}", e),
}
一些对话示例:
$ jarvis hello
Hello, World!
$ jarvis hello Alice
Hello, Alice!
$ jarvis time
Current time in format (HH:mm:ss): 14:30:15
$ jarvis ls /documents
/documents/report.pdf: file
/documents/images: directory
$ jarvis chat "What is the capital of France?"
Paris is the capital and most populous city of France.
尽管 Python 仍然是 AI/ML 的首选,但在需要最高性能、并发性和/或安全性的情况下,Rust 是一个引人注目的替代方案。很高兴看到 Rust 在这一领域得到越来越多的采用。
作者:聆听音乐的鱼
本文为 @ 万能的大雄 创作并授权 21CTO 发布,未经许可,请勿转载。
内容授权事宜请您联系 webmaster@21cto.com或关注 21CTO 公众号。
该文观点仅代表作者本人,21CTO 平台仅提供信息存储空间服务。