Current section

Files

Jump to
dspex examples basic.exs
Raw

examples/basic.exs

# Basic DSPex Example - Using Generated Native Bindings
#
# Run with: mix run --no-start examples/basic.exs
#
# Requires: GEMINI_API_KEY environment variable
require SnakeBridge
SnakeBridge.script do
IO.puts("DSPex Basic Example")
IO.puts("===================\n")
# Create and configure LM using native bindings
IO.puts("1. Creating language model...")
{:ok, lm} = Dspy.LM.new("gemini/gemini-flash-lite-latest", [], temperature: 0.7)
IO.puts(" Created: gemini/gemini-flash-lite-latest")
IO.puts("\n2. Configuring DSPy...")
{:ok, _} = Dspy.configure(lm: lm)
IO.puts(" Configured!")
# Create predictor using native bindings
IO.puts("\n3. Creating Predict module...")
{:ok, predict} = Dspy.PredictClass.new("question -> answer", [])
IO.puts(" Created!")
# Run prediction using native method call
IO.puts("\n4. Running prediction...")
question = "What is the capital of Hawaii?"
IO.puts(" Q: #{question}")
{:ok, result} = Dspy.PredictClass.forward(predict, question: question)
{:ok, answer} = SnakeBridge.attr(result, "answer")
IO.puts(" A: #{answer}")
IO.puts("\nDone!")
end