Class: Ollama::Parsers::Generate

Inherits:
Base
  • Object
show all
Defined in:
lib/ollama/parsers/generate.rb

Overview

Parses generate completion responses

Instance Method Summary collapse

Constructor Details

#initialize(provider: nil) ⇒ Generate

Returns a new instance of Generate.



10
11
12
13
# File 'lib/ollama/parsers/generate.rb', line 10

def initialize(provider: nil)
  super()
  @provider = provider
end

Instance Method Details

#call(transport_response) ⇒ Object



15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
# File 'lib/ollama/parsers/generate.rb', line 15

def call(transport_response)
  data = json(transport_response)
  data = @provider.normalize_generate_response(data) if @provider.respond_to?(:normalize_generate_response)
  # Generate endpoint returns a flat response with "response" field
  # Convert to Response-compatible format
  response_data = {
    "message" => { "role" => "assistant", "content" => data["response"] },
    "done" => data["done"],
    "done_reason" => data["done_reason"],
    "model" => data["model"],
    "created_at" => data["created_at"],
    "total_duration" => data["total_duration"],
    "load_duration" => data["load_duration"],
    "prompt_eval_count" => data["prompt_eval_count"],
    "prompt_eval_duration" => data["prompt_eval_duration"],
    "eval_count" => data["eval_count"],
    "eval_duration" => data["eval_duration"],
    "context" => data["context"]
  }
  Responses::Generate.new(response_data)
end