Module llm_cli

Module llm_cli 

Source
Expand description

§LLM CLI Ecosystem Integration

Integrates Simon Willison’s LLM CLI tool for multi-model orchestration, embeddings, clustering, and RAG pipelines.

§Usage

use reasonkit::thinktool::llm_cli::{LlmCliClient, EmbeddingConfig, ClusterConfig};

let client = LlmCliClient::new()?;

// Execute a prompt
let response = client.prompt("Analyze this code", Some("claude-sonnet-4")).await?;

// Generate embeddings
let embeddings = client.embed("text to embed", None).await?;

// Cluster documents
let clusters = client.cluster("documents", 5, None).await?;

§Security

All user-provided inputs are validated and sanitized before being passed to shell commands. This includes:

  • Model names (alphanumeric, hyphens, underscores, slashes, colons, dots)
  • Collection names (alphanumeric, hyphens, underscores)
  • Database paths (validated as safe filesystem paths)
  • Template names (alphanumeric, hyphens, underscores)

Structs§

ClusterAssignment
Individual cluster assignment
ClusterConfig
Configuration for clustering operations
ClusterResult
Result from clustering operation
EmbeddingConfig
Configuration for embedding operations
EmbeddingResult
Result from embedding operation
LlmCliClient
LLM CLI Client for multi-model orchestration
LlmCliConfig
Configuration for the LLM CLI client
PromptResult
Result from an LLM prompt
RagConfig
Configuration for RAG operations
SimilarityMatch
Individual similarity match
SimilarityResult
Result from similarity search