Current section

Files

Jump to
dspex examples summarization.exs
Raw

examples/summarization.exs

# Summarization Example - Using Generated Native Bindings
#
# Run with: mix run --no-start examples/summarization.exs
require SnakeBridge
SnakeBridge.script do
IO.puts("DSPex Summarization Example")
IO.puts("============================\n")
{:ok, lm} = Dspy.LM.new("gemini/gemini-flash-lite-latest", [])
{:ok, _} = Dspy.configure(lm: lm)
{:ok, summarizer} = Dspy.PredictClass.new("text -> summary", [])
text = """
Elixir is a dynamic, functional language for building scalable and maintainable
applications. Elixir runs on the Erlang VM, known for creating low-latency,
distributed, and fault-tolerant systems. These capabilities and Elixir tooling
allow developers to be productive in several domains, such as web development,
embedded software, machine learning, data pipelines, and multimedia processing.
"""
IO.puts("Original text:")
IO.puts(String.trim(text))
IO.puts("")
{:ok, result} = Dspy.PredictClass.forward(summarizer, text: text)
{:ok, summary} = SnakeBridge.attr(result, "summary")
IO.puts("Summary: #{summary}")
IO.puts("\nDone!")
end