Dasturlash

Imp: Elixir uchun DSPy texnologiyasini BEAMga portlash

28-sentabr, 2026, 01:192 ko'rish4 daqiqa o'qish
Imp: Elixir uchun DSPy texnologiyasini BEAMga portlash

Imp — bu DSPy texnologiyasini Elixir uchun BEAMga portlash. Bu texnologiya yordamida til-modellari dasturlarini aniqlik va optimallashtirish imkoniyatlarini taqdim etadi. Imp bilan foydalanuvchi til-modellari dasturlarining har bir qadamini aniqlab, optimallashtirish imkoniyatlarini taqdim etadi.

Impning asosiy xususiyatlari

Imp bilan foydalanuvchi til-modellari dasturlarining har bir qadamini aniqlab, optimallashtirish imkoniyatlarini taqdim etadi. Bu texnologiya yordamida til-modellari dasturlarini aniqlik va optimallashtirish imkoniyatlarini taqdim etadi. Imp bilan foydalanuvchi til-modellari dasturlarining har bir qadamini aniqlab, optimallashtirish imkoniyatlarini taqdim etadi.

An imp studies a hand of cards through a lens while a smaller imp springs from its tail.

Impning ishlash printsipi

Imp bilan foydalanuvchi til-modellari dasturlarining har bir qadamini aniqlab, optimallashtirish imkoniyatlarini taqdim etadi. Bu texnologiya yordamida til-modellari dasturlarini aniqlik va optimallashtirish imkoniyatlarini taqdim etadi. Imp bilan foydalanuvchi til-modellari dasturlarining har bir qadamini aniqlab, optimallashtirish imkoniyatlarini taqdim etadi.

lm = Imp.req_llm("openai:gpt-5.4-mini", api_key: System.fetch_env!("OPENAI_API_KEY"))

triage =
  "issue -> kind: enum[bug,feature,question], summary"
  |> Imp.signature("Triage a GitHub issue.")
  |> Imp.predict(lm: lm)

{:ok, prediction} =
  Imp.call(triage, %{issue: "App crashes on startup since 0.4 with ** (KeyError) key :lm not found"})

{Imp.get(prediction, :kind), Imp.get(prediction, :summary)}
#=> {"bug", "App crashes on startup since version 0.4 with a KeyError for `:lm` not found."}

Imp bilan foydalanuvchi til-modellari dasturlarining har bir qadamini aniqlab, optimallashtirish imkoniyatlarini taqdim etadi. Bu texnologiya yordamida til-modellari dasturlarini aniqlik va optimallashtirish imkoniyatlarini taqdim etadi. Imp bilan foydalanuvchi til-modellari dasturlarining har bir qadamini aniqlab, optimallashtirish imkoniyatlarini taqdim etadi.

# Each set is a list of labeled issues like this one:
example =
  Imp.example(%{issue: "Please add a dark mode to the dashboard", kind: "feature"})
  |> Imp.with_inputs([:issue])

metric = Imp.exact_match(:kind)

Imp.evaluate(triage, testset, metric).score

optimizer = Imp.Optimizer.GEPA.new(metric, reflection_lm: strong_lm, max_metric_calls: 300)
improved = Imp.optimize!(triage, optimizer, trainset, valset)

Imp.evaluate(improved, testset, metric).score

Impning afzalliklari

Imp bilan foydalanuvchi til-modellari dasturlarining har bir qadamini aniqlab, optimallashtirish imkoniyatlarini taqdim etadi. Bu texnologiya yordamida til-modellari dasturlarini aniqlik va optimallashtirish imkoniyatlarini taqdim etadi. Imp bilan foydalanuvchi til-modellari dasturlarining har bir qadamini aniqlab, optimallashtirish imkoniyatlarini taqdim etadi.

fetch =
  Imp.tool(:fetch, "Read a web page as text.", fn %{"url" => url} -> Req.get!(url).body end,
    schema: %{"type" => "object", "properties" => %{"url" => %{"type" => "string"}}, "required" => ["url"]}
  )

researcher = Imp.react("question -> answer", [fetch], lm: lm)

question =
  "What version does https://raw.githubusercontent.com/elixir-lang/elixir/v1.18.0/VERSION say? " <>
    "Reply with just the version."

{:ok, prediction} = Imp.call(researcher, %{question: question})
Imp.get(prediction, :answer)
#=> "1.18.0"

Imp bilan foydalanuvchi til-modellari dasturlarining har bir qadamini aniqlab, optimallashtirish imkoniyatlarini taqdim etadi. Bu texnologiya yordamida til-modellari dasturlarini aniqlik va optimallashtirish imkoniyatlarini taqdim etadi. Imp bilan foydalanuvchi til-modellari dasturlarining har bir qadamini aniqlab, optimallashtirish imkoniyatlarini taqdim etadi.

{:ok, run} =
  Imp.start_run(researcher, %{question: question},
    authorize: fn call ->
      url = call.arguments["url"] || ""

      if String.starts_with?(url, "https://raw.githubusercontent.com/"),
        do: :allow,
        else: {:deny, :untrusted_host}
    end
  )

{:ok, prediction} = Task.await(run.task, :infinity)

for event <- Imp.Run.events(run), do: event.kind
#=> [:run_started, :tools_sent, :model_request, :model_response, :tool_call,
#    :tool_result, :model_request, :model_response, :run_finished]

Impning optimallashtirish imkoniyatlari

Imp bilan foydalanuvchi til-modellari dasturlarining har bir qadamini aniqlab, optimallashtirish imkoniyatlarini taqdim etadi. Bu texnologiya yordamida til-modellari dasturlarini aniqlik va optimallashtirish imkoniyatlarini taqdim etadi. Imp bilan foydalanuvchi til-modellari dasturlarining har bir qadamini aniqlab, optimallashtirish imkoniyatlarini taqdim etadi.

{:imp, "~> 0.5"}

Imp bilan foydalanuvchi til-modellari dasturlarining har bir qadamini aniqlab, optimallashtirish imkoniyatlarini taqdim etadi. Bu texnologiya yordamida til-modellari dasturlarini aniqlik va optimallashtirish imkoniyatlarini taqdim etadi. Imp bilan foydalanuvchi til-modellari dasturlarining har bir qadamini aniqlab, optimallashtirish imkoniyatlarini taqdim etadi.

Imp bilan foydalanuvchi til-modellari dasturlarining har bir qadamini aniqlab, optimallashtirish imkoniyatlarini taqdim etadi. Bu texnologiya yordamida til-modellari dasturlarini aniqlik va optimallashtirish imkoniyatlarini taqdim etadi. Imp bilan foydalanuvchi til-modellari dasturlarining har bir qadamini aniqlab, optimallashtirish imkoniyatlarini taqdim etadi.

Impning ilovalari

Imp bilan foydalanuvchi til-modellari dasturlarining har bir qadamini aniqlab, optimallashtirish imkoniyatlarini taqdim etadi. Bu texnologiya yordamida til-modellari dasturlarini aniqlik va optimallashtirish imkoniyatlarini taqdim etadi. Imp bilan foydalanuvchi til-modellari dasturlarining har bir qadamini aniqlab, optimallashtirish imkoniyatlarini taqdim etadi.

Imp bilan foydalanuvchi til-modellari dasturlarining har bir qadamini aniqlab, optimallashtirish imkoniyatlarini taqdim etadi. Bu texnologiya yordamida til-modellari dasturlarini aniqlik va optimallashtirish imkoniyatlarini taqdim etadi. Imp bilan foydalanuvchi til-modellari dasturlarining har bir qadamini aniqlab, optimallashtirish imkoniyatlarini taqdim etadi.

Imp bilan foydalanuvchi til-modellari dasturlarining har bir qadamini aniqlab, optimallashtirish imkoniyatlarini taqdim etadi. Bu texnologiya yordamida til-modellari dasturlarini aniqlik va optimallashtirish imkoniyatlarini taqdim etadi. Imp bilan foydalanuvchi til-modellari dasturlarining har bir qadamini aniqlab, optimallashtirish imkoniyatlarini taqdim etadi.

Asl manba: github.com

Manba: Hacker News
#Imp #Elixir #DSPy #BEAM #til-modellari
Telegram da muhokama qilish