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>andBufferView<'a>for zero-allocation string handling - String Interning: 4-byte
Symsymbols 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§
- Jinja
Value - Represents a dynamically typed value in the template engine.
Constants§
- VERSION
- Version of the library