# Generated by SnakeBridge v0.14.0 - DO NOT EDIT MANUALLY # Regenerate with: mix compile # Library: dspy 3.1.2 # Python module: dspy.predict # Python class: KNN defmodule Dspy.Predict.KNNClass do @moduledoc """ Wrapper for Python class KNN. """ def __snakebridge_python_name__, do: "dspy.predict" def __snakebridge_python_class__, do: "KNN" def __snakebridge_library__, do: "dspy" @opaque t :: SnakeBridge.Ref.t() @doc """ A k-nearest neighbors retriever that finds similar examples from a training set. ## Parameters - `k` - Number of nearest neighbors to retrieve - `trainset` - List of training examples to search through - `vectorizer` - The `Embedder` to use for vectorization ## Examples ```python import dspy from sentence_transformers import SentenceTransformer # Create a training dataset with examples trainset = [ dspy.Example(input="hello", output="world"), # ... more examples ... ] # Initialize KNN with a sentence transformer model knn = KNN( k=3, trainset=trainset, vectorizer=dspy.Embedder(SentenceTransformer("all-MiniLM-L6-v2").encode) ) # Find similar examples similar_examples = knn(input="hello") ``` """ @spec new( integer(), list(Dspy.Primitives.ExampleClass.t()), Dspy.Clients.Embedding.Embedder.t(), keyword() ) :: {:ok, SnakeBridge.Ref.t()} | {:error, Snakepit.Error.t()} def new(k, trainset, vectorizer, opts \\ []) do SnakeBridge.Runtime.call_class(__MODULE__, :__init__, [k, trainset, vectorizer], opts) end end