Skip to main content

Crate kkachi

Crate kkachi 

Source
Expand description

§Kkachi - High-Performance LM Optimization Library

Zero-copy, embeddable library for optimizing language model prompts and programs. Designed for production use with focus on performance, safety, and ease of integration.

§Architecture

Kkachi is built on several key principles:

  • TRUE Zero-Copy: StrView<'a> and BufferView<'a> for zero-allocation string handling
  • String Interning: 4-byte Sym symbols for field names instead of 24-byte Strings
  • GATs: Generic Associated Types for zero-cost async without boxing
  • Streaming Pipelines: Data flows between modules without full materialization

§Quick Start

use kkachi::recursive::prelude::*;

let llm = MockLlm::new(|prompt, _| "fn add(a: i32, b: i32) -> i32 { a + b }".to_string());

// Simple refinement with validation
let result = refine(&llm, "Write an add function")
    .validate(checks().require("fn ").require("->"))
    .max_iter(5)
    .go()
    .unwrap();

// CLI validation pipeline
let validator = cli("rustfmt").arg("--check")
    .then("rustc").args(&["--emit=metadata"]).required()
    .ext("rs");

let result = refine(&llm, "Write a parser")
    .validate(validator)
    .go()
    .unwrap();

Re-exports§

pub use bootstrap::BootstrapFewShot;
pub use bootstrap::BootstrapFewShotWithRandomSearch;
pub use error::Error;
pub use error::OptimizationDetails;
pub use error::Result;
pub use example::Example;
pub use field::Field;
pub use field::FieldType;
pub use field::InputField;
pub use field::OutputField;
pub use module::Module;
pub use optimizer::ExampleMeta;
pub use optimizer::ExampleSet;
pub use optimizer::OptimizationResult;
pub use optimizer::Optimizer;
pub use optimizer::OptimizerConfig;
pub use optimizer::Rng;
pub use predict::predict_with_lm;
pub use predict::DemoMeta;
pub use predict::FieldRange;
pub use predict::LMClient;
pub use predict::LMOutput;
pub use predict::Predict;
pub use predict::PredictOutput;
pub use prediction::Prediction;
pub use signature::Signature;
pub use signature::SignatureBuilder;
pub use typed_adapter::ChatTypedAdapter;
pub use typed_adapter::JsonTypedAdapter;
pub use typed_adapter::TypedAdapter;
pub use typed_sig::ParsedOutput;
pub use typed_sig::TypedField;
pub use typed_sig::TypedSignature;
pub use typed_sig::ValueKind;
pub use evaluate::EvalResult;
pub use evaluate::Evaluate;
pub use evaluate::ExampleResult;
pub use metric::Contains as MetricContains;
pub use metric::ExactMatch;
pub use metric::F1Token;
pub use metric::FnMetric;
pub use metric::Metric;
pub use compiled::CompiledProgram;
pub use composable::ComposableModule;
pub use composable::ModuleState;
pub use optimizers::COPROConfig;
pub use optimizers::COPROResult;
pub use optimizers::CombineStrategy;
pub use optimizers::Embedder as OptimizerEmbedder;
pub use optimizers::EmbeddingIndex;
pub use optimizers::Ensemble;
pub use optimizers::EnsembleConfig;
pub use optimizers::EnsembleResult;
pub use optimizers::ErasedOptimizer;
pub use optimizers::FailureCase;
pub use optimizers::Improvement;
pub use optimizers::ImprovementKind;
pub use optimizers::KNNConfig;
pub use optimizers::KNNFewShot;
pub use optimizers::KNNSelector;
pub use optimizers::LabeledConfig;
pub use optimizers::LabeledFewShot;
pub use optimizers::LabeledFewShotBuilder;
pub use optimizers::MIPROConfig;
pub use optimizers::MIPROResult;
pub use optimizers::OptimizeInto;
pub use optimizers::SIMBAConfig;
pub use optimizers::SIMBAResult;
pub use optimizers::SelectionStrategy;
pub use optimizers::TPESampler;
pub use optimizers::COPRO;
pub use optimizers::MIPRO;
pub use optimizers::SIMBA;
pub use recall_precision::RecallPrecisionMode;
pub use adapter::Adapter;
pub use adapter::ChatAdapter;
pub use adapter::ChatConfig;
pub use adapter::DemoData;
pub use adapter::JSONAdapter;
pub use adapter::JSONConfig;
pub use adapter::XMLAdapter;
pub use adapter::XMLConfig;
pub use assertion::Assertion;
pub use assertion::AssertionLevel;
pub use assertion::AssertionResult;
pub use assertion::AssertionRunner;
pub use assertion::Contains;
pub use assertion::Custom;
pub use assertion::EndsWith;
pub use assertion::JsonValid;
pub use assertion::LengthBounds;
pub use assertion::NotEmpty;
pub use assertion::OneOf;
pub use assertion::RegexMatch;
pub use assertion::StartsWith;
pub use executor::BatchRunner;
pub use executor::BufferPool;
pub use executor::BufferPoolStats;
pub use executor::ExecutorConfig;
pub use executor::ExecutorStats;
pub use executor::HybridExecutor;
pub use executor::ScopedBuffer;
pub use recursive::agent;
pub use recursive::agent;
pub use recursive::all;
pub use recursive::any;
pub use recursive::bash_executor;
pub use recursive::best_of;
pub use recursive::best_of;
pub use recursive::checks;
pub use recursive::checks;
pub use recursive::cli;
pub use recursive::cli;
pub use recursive::cosine_similarity;
pub use recursive::ensemble;
pub use recursive::ensemble;
pub use recursive::extract_all_code;
pub use recursive::extract_code;
pub use recursive::extract_section;
pub use recursive::memory;
pub use recursive::memory;
pub use recursive::mmr_select;
pub use recursive::multi_objective;
pub use recursive::node_executor;
pub use recursive::parse_output;
pub use recursive::pipeline;
pub use recursive::pipeline;
pub use recursive::program;
pub use recursive::program;
pub use recursive::python_executor;
pub use recursive::reason;
pub use recursive::reason;
pub use recursive::refine;
pub use recursive::refine;
pub use recursive::refine_pareto;
pub use recursive::refine_pareto_sync;
pub use recursive::rewrite;
pub use recursive::rewrite;
pub use recursive::ruby_executor;
pub use recursive::tool;
pub use recursive::tool;
pub use recursive::typed;
pub use recursive::typed;
pub use recursive::Agent;
pub use recursive::AgentConfig;
pub use recursive::AgentResult;
pub use recursive::Aggregate;
pub use recursive::All;
pub use recursive::AlwaysFail;
pub use recursive::And;
pub use recursive::Any;
pub use recursive::AsyncFnTool;
pub use recursive::BestOf;
pub use recursive::BestOfConfig;
pub use recursive::BestOfResult;
pub use recursive::BoolValidator;
pub use recursive::BoxedLlm;
pub use recursive::BranchBuilder;
pub use recursive::CacheExt;
pub use recursive::CachedLlm;
pub use recursive::CandidatePool;
pub use recursive::ChainResult;
pub use recursive::Checks;
pub use recursive::Cli;
pub use recursive::CliCapture;
pub use recursive::CliLlm;
pub use recursive::CliTool;
pub use recursive::CodeExecutor;
pub use recursive::Compiled;
pub use recursive::Config as RefineConfig;
pub use recursive::ConsensusPool;
pub use recursive::ContextId;
pub use recursive::Conversation;
pub use recursive::Correction;
pub use recursive::DefaultScorer;
pub use recursive::Direction;
pub use recursive::Document;
pub use recursive::Embedder;
pub use recursive::ExecutionResult;
pub use recursive::FailingLlm;
pub use recursive::FanOutBranchResult;
pub use recursive::FeedbackFormatter;
pub use recursive::FnScorer;
pub use recursive::FnTool;
pub use recursive::FnValidator;
pub use recursive::FormatInstruction;
pub use recursive::FormatSpec;
pub use recursive::FormatType;
pub use recursive::HashEmbedder;
pub use recursive::Iteration;
pub use recursive::IterativeMockLlm;
pub use recursive::JsonSchema;
pub use recursive::LinearIndex;
pub use recursive::Llm;
pub use recursive::LlmExt;
pub use recursive::LmOutput;
pub use recursive::Memory;
pub use recursive::MergeStrategy;
pub use recursive::Message;
pub use recursive::MockLlm;
pub use recursive::MockTool;
pub use recursive::MultiObjective;
pub use recursive::MultiObjectiveValidate;
pub use recursive::MultiScore;
pub use recursive::NoValidation;
pub use recursive::Objective;
pub use recursive::OptimizedPrompt;
pub use recursive::Or;
pub use recursive::ParetoCandidate;
pub use recursive::ParetoFront;
pub use recursive::ParetoRefineResult;
pub use recursive::PassthroughFormatter;
pub use recursive::Pipeline;
pub use recursive::PipelineEvent;
pub use recursive::PipelineResult;
pub use recursive::PoolStats;
pub use recursive::ProcessExecutor;
pub use recursive::Program;
pub use recursive::ProgramConfig;
pub use recursive::ProgramResult;
pub use recursive::PromptFormatter;
pub use recursive::PromptTone;
pub use recursive::RateLimitConfig;
pub use recursive::RateLimitExt;
pub use recursive::RateLimitedLlm;
pub use recursive::Reason;
pub use recursive::ReasonConfig;
pub use recursive::ReasonResult;
pub use recursive::Recall;
pub use recursive::Refine;
pub use recursive::RefineEvent;
pub use recursive::RefineResult;
pub use recursive::RetryConfig;
pub use recursive::RetryLlm;
pub use recursive::Rewrite;
pub use recursive::Role;
pub use recursive::Scalarization;
pub use recursive::Score;
pub use recursive::ScoreValidator;
pub use recursive::ScoredCandidate;
pub use recursive::Scorer;
pub use recursive::Step;
pub use recursive::StepResult;
pub use recursive::StopReason;
pub use recursive::Template;
pub use recursive::TemplateExample;
pub use recursive::TemplateOptions;
pub use recursive::ToneModifiers;
pub use recursive::Tool;
pub use recursive::ToolBuilder;
pub use recursive::TypedValidator;
pub use recursive::Validate;
pub use recursive::ValidateExt;
pub use recursive::VectorIndex;
pub use recursive::critic::Critic;
pub use recursive::critic::CriticFeedback;
pub use recursive::critic::FnCritic;
pub use recursive::critic::LlmCritic;
pub use recursive::critic::NoCritic;
pub use recursive::input::ContentType;
pub use recursive::input::Input;
pub use recursive::input::InputPart;
pub use recursive::input::MultimodalLlm;
pub use recursive::state::Saveable;
pub use recursive::state::SaveableExt;
pub use recursive::state::StateMap;
pub use recursive::state::StateValue;
pub use diff::Change;
pub use diff::ChangeKind;
pub use diff::DemoSnapshot;
pub use diff::DemosDiff;
pub use diff::DiffAlgorithm;
pub use diff::DiffColors;
pub use diff::DiffHunk;
pub use diff::DiffRenderer;
pub use diff::DiffStats;
pub use diff::DiffStyle;
pub use diff::FieldsDiff;
pub use diff::IterationDiffBuilder;
pub use diff::ModuleDiff;
pub use diff::TextDiff;
pub use hitl::AsyncHumanReviewer;
pub use hitl::AutoAcceptReviewer;
pub use hitl::CallbackReviewer;
pub use hitl::HITLConfig;
pub use hitl::HumanReviewer;
pub use hitl::RecordingReviewer;
pub use hitl::ReviewContext;
pub use hitl::ReviewDecision;
pub use hitl::ReviewTrigger;
pub use hitl::TerminalReviewer;
pub use hitl::ThresholdReviewer;
pub use declarative::JinjaFormatter;
pub use declarative::JinjaTemplate;
pub use buffer::Buffer;
pub use buffer::BufferView;
pub use intern::resolve;
pub use intern::sym;
pub use intern::Sym;
pub use str_view::StrView;
pub use types::FieldMap;
pub use types::Inputs;

Modules§

adapter
Zero-Copy Adapters
assertion
Zero-Copy Assertions
bootstrap
BootstrapFewShot optimizer implementation
buffer
Zero-copy buffer system for efficient memory management
compiled
Compiled program representing optimized LLM configurations.
composable
Composable module system for building complex LLM programs.
declarative
Declarative Pipeline API
diff
Diff visualization system for prompt optimization.
error
Error types for Kkachi
evaluate
Evaluation harness for testing LLM performance on datasets.
example
Training and evaluation examples
executor
Hybrid Executor
field
Field definitions for signatures
hitl
Human-in-the-Loop (HITL) system for interactive refinement.
intern
String interning for efficient field name handling
metric
Metric trait and built-in implementations for evaluating LLM outputs.
module
Module trait and base implementations
optimizer
Optimizer traits and base implementations
optimizers
Advanced optimizers for prompt and demonstration optimization
predict
Predict module for LM-based predictions with demo management
prediction
Prediction results from module execution
prelude
Prelude module for convenient imports.
recall_precision
Recall/Precision mode configuration for tuning LLM output thresholds.
recursive
Recursive Language Prompting Module
signature
Signature system for defining input/output contracts
str_view
Zero-copy string view for high-performance string handling
typed_adapter
Typed adapter trait for formatting and parsing typed signatures.
typed_sig
Typed Signature System for statically-declared, const-constructible signatures.
types
Core type definitions

Macros§

kkachi_module
Declarative macro for auto-generating save_state / load_state.

Structs§

JinjaValue
Represents a dynamically typed value in the template engine.

Constants§

VERSION
Version of the library