Commit a46de65
Changed files (1)
lib
net
llm
lib/net/llm/ollama.rb
@@ -12,26 +12,18 @@ module Net
end
def chat(messages, tools = [], &block)
- url = build_url("/api/chat")
payload = { model: model, messages: messages, stream: block_given? }
payload[:tools] = tools unless tools.empty?
- if block_given?
- stream_request(url, payload, &block)
- else
- post_request(url, payload)
- end
+ execute(build_url("/api/chat"), payload, &block)
end
def generate(prompt, &block)
- url = build_url("/api/generate")
- payload = { model: model, prompt: prompt, stream: block_given? }
-
- if block_given?
- stream_request(url, payload, &block)
- else
- post_request(url, payload)
- end
+ execute(build_url("/api/generate"), {
+ model: model,
+ prompt: prompt,
+ stream: block_given?
+ }, &block)
end
def embeddings(input)
@@ -48,6 +40,14 @@ module Net
private
+ def execute(url, payload, &block)
+ if block_given?
+ stream_request(url, payload, &block)
+ else
+ post_request(url, payload)
+ end
+ end
+
def build_url(path)
base = host.start_with?("http://", "https://") ? host : "http://#{host}"
"#{base}#{path}"