|
12 | 12 | (def ^:private logger-tag "[LLM-API]") |
13 | 13 |
|
14 | 14 | (defn extra-models [config] |
15 | | - (llm-providers.ollama/list-models {:host (:host (:ollama config)) |
16 | | - :port (:port (:ollama config))})) |
| 15 | + (let [ollama-host (:host (:ollama config)) |
| 16 | + ollama-port (:port (:ollama config))] |
| 17 | + (mapv |
| 18 | + (fn [{:keys [model] :as ollama-model}] |
| 19 | + (let [capabilities (llm-providers.ollama/model-capabilities {:host ollama-host :port ollama-port :model model})] |
| 20 | + (assoc ollama-model |
| 21 | + :tools (and (get-in config [:ollama :useTools] true) |
| 22 | + (boolean (some #(= % "tools") capabilities))) |
| 23 | + :reason? (and (get-in config [:ollama :think] true) |
| 24 | + (boolean (some #(= % "thinking") capabilities)))))) |
| 25 | + (llm-providers.ollama/list-models {:host ollama-host :port ollama-port})))) |
17 | 26 |
|
18 | 27 | ;; TODO ask LLM for the most relevant parts of the path |
19 | 28 | (defn refine-file-context [path lines-range] |
|
116 | 125 | :user-messages user-messages |
117 | 126 | :max-output-tokens max-output-tokens |
118 | 127 | :reason-tokens reason-tokens |
119 | | - :reason? reason? |
| 128 | + :reason? (and reason? (:reason? model-config)) |
120 | 129 | :past-messages past-messages |
121 | 130 | :tools tools |
122 | 131 | :web-search web-search |
|
133 | 142 | :user-messages user-messages |
134 | 143 | :max-output-tokens max-output-tokens |
135 | 144 | :reason-tokens reason-tokens |
136 | | - :reason? reason? |
| 145 | + :reason? (and reason? (:reason? model-config)) |
137 | 146 | :past-messages past-messages |
138 | 147 | :tools tools |
139 | 148 | :web-search web-search |
|
145 | 154 | (llm-providers.ollama/completion! |
146 | 155 | {:host (-> config :ollama :host) |
147 | 156 | :port (-> config :ollama :port) |
148 | | - :reason? (and reason? (:think model-config)) |
| 157 | + :reason? (and reason? (:reason? model-config)) |
149 | 158 | :model (string/replace-first model config/ollama-model-prefix "") |
150 | 159 | :instructions instructions |
151 | 160 | :user-messages user-messages |
|
168 | 177 | :user-messages user-messages |
169 | 178 | :max-output-tokens max-output-tokens |
170 | 179 | :reason-tokens reason-tokens |
171 | | - :reason? reason? |
| 180 | + :reason? (and reason? (:reason? model-config)) |
172 | 181 | :past-messages past-messages |
173 | 182 | :web-search web-search |
174 | 183 | :tools tools |
|
0 commit comments