Commit a46de65

mo khan <mo@mokhan.ca>
2025-12-23 22:48:35
refactor: extract execute method
1 parent 93fda9f
Changed files (1)
lib
net
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}"