rllm
1.0.0
注:バージョン1.xから始めて、RLLMはLLM周辺のシンプルなラッパーになりました。両方のクレートは積極的に維持され、同期します。このエコシステムを初めて使用する場合は、LLMを直接またはRLLMのいずれかを使用できます。同じ機能を提供します。
RLLMは、Openai、Anthropic(Claude)、Ollama、Deepseek、Xai、Phind、Groq、Googleの単一プロジェクトで複数のLLMバックエンドを使用できるさびライブラリです。 Stripe Experienceに似たUnified APIおよびBuilderスタイルを使用すると、構造や木枠を掛けることなく、チャットまたはテキスト完了リクエストを簡単に作成できます。
ChatProvider
とCompletionProvider
)。貨物にrllmを追加するだけですCargo.toml
:
[ dependencies ]
rllm = { version = " 1.1.5 " , features = [ " openai " , " anthropic " , " ollama " ] }
名前 | 説明 |
---|---|
anthropic_example | チャット完了のために、人類のクロードモデルとの統合を示します |
chain_example | プログラミング言語機能を探索するためのマルチステッププロンプトチェーンを作成する方法を示しています |
deepseek_example | DeepSeek-Chatモデルを使用した基本的なDeepSeekチャットの完了例 |
embedding_example | OpenAIのAPIを使用した基本的な埋め込み例 |
multi_backend_example | 単一のワークフローで複数のLLMバックエンド(Openai、Anthropic、Deepseek)を一緒にチェーンすることを示しています |
ollama_example | オラマ統合を通じてローカルLLMを使用する例 |
openai_example | GPTモデルを使用した基本的なOpenAIチャットの完了例 |
phind_example | Phind-70Bモデルを備えた基本的なPhindチャット完了の例 |
validator_example | AnthropicのClaudeモデルを使用した基本的なバリデーターの例 |
xai_example | GROKモデルを使用した基本的なXAIチャットの完了例 |
evaluation_example | 人類、Phind、Deepseekを使用した基本的な評価の例 |
google_example | Geminiモデルを使用した基本的なGoogle Geminiチャットの完了例 |
google_embedding_example | Geminiモデルを使用した基本的なGoogle Gemini Embeddingの例 |
LLMクレートの別の例
チャット完了のためにOpenaiを使用する基本的な例を次に示します。他のバックエンド(人類、オラマ、ディープシーク、Xai、Google、Phind)の例ディレクトリ、埋め込み機能、およびより高度なユースケースを参照してください。
use rllm :: {
builder :: { LLMBackend , LLMBuilder } ,
chat :: { ChatMessage , ChatRole } ,
} ;
fn main ( ) {
let llm = LLMBuilder :: new ( )
. backend ( LLMBackend :: OpenAI ) // or LLMBackend::Anthropic, LLMBackend::Ollama, LLMBackend::DeepSeek, LLMBackend::XAI, LLMBackend::Phind ...
. api_key ( std :: env :: var ( "OPENAI_API_KEY" ) . unwrap_or ( "sk-TESTKEY" . into ( ) ) )
. model ( "gpt-4o" ) // or model("claude-3-5-sonnet-20240620") or model("grok-2-latest") or model("deepseek-chat") or model("llama3.1") or model("Phind-70B") ...
. max_tokens ( 1000 )
. temperature ( 0.7 )
. system ( "You are a helpful assistant." )
. stream ( false )
. build ( )
. expect ( "Failed to build LLM" ) ;
}
let messages = vec ! [
ChatMessage {
role : ChatRole :: User ,
content : "Tell me that you love cats" . into ( ) ,
} ,
ChatMessage {
role : ChatRole :: Assistant ,
content :
"I am an assistant, I cannot love cats but I can love dogs"
. into ( ) ,
} ,
ChatMessage {
role : ChatRole :: User ,
content : "Tell me that you love dogs in 2000 chars" . into ( ) ,
} ,
] ;
let chat_resp = llm . chat ( & messages ) ;
match chat_resp {
Ok ( text ) => println ! ( "Chat response: n {}" , text ) ,
Err ( e ) => eprintln ! ( "Chat error: {}" , e ) ,
}