- Added OllamaClient to handle conversations with the Ollama API. - Introduced OllamaDialect for managing thinking modes. - Created data classes: OllamaFunctionCall, OllamaListedModel, OllamaMessage, OllamaShowRequest, OllamaShowResponse, OllamaTagsResponse, OllamaToolCall, OllamaToolDefinition, and OllamaToolFunction for structured API communication. - Developed unit tests for OllamaClient to validate model listing, chat completion, streaming responses, and tool calling capabilities. - Configured test properties for local Ollama instance.
45 lines
1.4 KiB
Java
45 lines
1.4 KiB
Java
package de.extio.lmlib.client;
|
|
|
|
import org.springframework.boot.autoconfigure.AutoConfiguration;
|
|
import org.springframework.boot.autoconfigure.AutoConfigureAfter;
|
|
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
|
|
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
|
|
import org.springframework.context.annotation.Bean;
|
|
|
|
import de.extio.lmlib.client.ollama.OllamaClient;
|
|
import de.extio.lmlib.client.oai.completion.chat.ChatCompletionClient;
|
|
import de.extio.lmlib.client.oai.completion.text.TextCompletionClient;
|
|
import de.extio.lmlib.profile.ProfileAutoConfiguration;
|
|
import de.extio.lmlib.token.TokenizerAutoConfiguration;
|
|
|
|
@AutoConfiguration
|
|
@AutoConfigureAfter({ProfileAutoConfiguration.class, TokenizerAutoConfiguration.class, RestClientConfiguration.class})
|
|
@ConditionalOnProperty(prefix = "lmlib.client", name = "enabled", havingValue = "true", matchIfMissing = true)
|
|
public class ClientAutoConfiguration {
|
|
|
|
@Bean
|
|
@ConditionalOnMissingBean
|
|
ClientService clientService() {
|
|
return new ClientService();
|
|
}
|
|
|
|
@Bean
|
|
@ConditionalOnMissingBean
|
|
TextCompletionClient textCompletionClient() {
|
|
return new TextCompletionClient();
|
|
}
|
|
|
|
@Bean
|
|
@ConditionalOnMissingBean
|
|
ChatCompletionClient chatCompletionClient() {
|
|
return new ChatCompletionClient();
|
|
}
|
|
|
|
@Bean
|
|
@ConditionalOnMissingBean
|
|
OllamaClient ollamaClient() {
|
|
return new OllamaClient();
|
|
}
|
|
|
|
}
|