93 self.__serverResponding = False |
93 self.__serverResponding = False |
94 self.__heartbeatTimer = QTimer(self) |
94 self.__heartbeatTimer = QTimer(self) |
95 self.__heartbeatTimer.timeout.connect(self.__periodicHeartbeat) |
95 self.__heartbeatTimer.timeout.connect(self.__periodicHeartbeat) |
96 |
96 |
97 self.__state = OllamaClientState.Waiting |
97 self.__state = OllamaClientState.Waiting |
|
98 self.__localServer = False |
98 |
99 |
99 self.__serverResponding = False # start with a faulty state |
100 self.__serverResponding = False # start with a faulty state |
100 |
101 |
101 self.__plugin.preferencesChanged.connect(self.__setHeartbeatTimer) |
102 self.__plugin.preferencesChanged.connect(self.__setHeartbeatTimer) |
102 self.__setHeartbeatTimer() |
103 self.__setHeartbeatTimer() |
|
104 |
|
105 def setMode(self, local): |
|
106 """ |
|
107 Public method to set the client mode to local. |
|
108 |
|
109 @param local flag indicating to connect to a locally started ollama server |
|
110 @type bool |
|
111 """ |
|
112 self.__localServer = local |
|
113 self.__serverResponding = False |
103 |
114 |
104 def chat(self, model, messages, streaming=True): |
115 def chat(self, model, messages, streaming=True): |
105 """ |
116 """ |
106 Public method to request a chat completion from the 'ollama' server. |
117 Public method to request a chat completion from the 'ollama' server. |
107 |
118 |
351 self.__state = OllamaClientState.Requesting |
362 self.__state = OllamaClientState.Requesting |
352 |
363 |
353 ollamaUrl = QUrl( |
364 ollamaUrl = QUrl( |
354 "{0}://{1}:{2}/api/{3}".format( |
365 "{0}://{1}:{2}/api/{3}".format( |
355 self.__plugin.getPreferences("OllamaScheme"), |
366 self.__plugin.getPreferences("OllamaScheme"), |
356 self.__plugin.getPreferences("OllamaHost"), |
367 ( |
357 self.__plugin.getPreferences("OllamaPort"), |
368 "127.0.0.1" |
|
369 if self.__localServer |
|
370 else self.__plugin.getPreferences("OllamaHost") |
|
371 ), |
|
372 ( |
|
373 self.__plugin.getPreferences("OllamaLocalPort") |
|
374 if self.__localServer |
|
375 else self.__plugin.getPreferences("OllamaPort") |
|
376 ), |
358 endpoint, |
377 endpoint, |
359 ) |
378 ) |
360 ) |
379 ) |
361 request = QNetworkRequest(ollamaUrl) |
380 request = QNetworkRequest(ollamaUrl) |
362 if data is not None: |
381 if data is not None: |