mirror of
				https://github.com/amithkoujalgi/ollama4j.git
				synced 2025-10-31 00:20:40 +01:00 
			
		
		
		
	Compare commits
	
		
			2 Commits
		
	
	
		
			dependabot
			...
			fix-docs-b
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
|   | c628d1fa20 | ||
|   | 614f7422b6 | 
| @@ -209,7 +209,6 @@ To download/pull the model into your Ollama server, run the following command in | ||||
|  | ||||
| ```shell | ||||
| ollama pull mistral | ||||
|  | ||||
| ``` | ||||
|  | ||||
| You can list the models available on your model server by running the following command in your terminal. | ||||
|   | ||||
| @@ -31,7 +31,19 @@ You could do that with ease with the `function calling` capabilities of the mode | ||||
|  | ||||
| ### Create Tools/Functions | ||||
|  | ||||
| We can create static functions as our tools. | ||||
| There are two ways to create and register your tools: | ||||
|  | ||||
| 1. **Define static or regular methods and register them explicitly as tools.** | ||||
|    You can create standalone functions (static or instance methods) and manually associate them with your tool specifications. | ||||
|  | ||||
| 2. **Use annotation-based tool discovery for automatic registration.** | ||||
|    By annotating your tool methods, you can leverage `registerAnnotatedTools()` to automatically scan your classpath, find all annotated tool functions, and register them without extra boilerplate. | ||||
|  | ||||
| Learn more about annotation-based tool registration [here](/apis-generate/chat-with-tools#annotation-based-tool-registration). | ||||
|  | ||||
| Choose the approach that best fits your project—manual for precise control, or annotation-based for easier scaling. | ||||
|  | ||||
| Let's start by exploring the first approach: manually defining and registering your tools/functions. | ||||
|  | ||||
| This function takes the arguments `location` and `fuelType` and performs an operation with these arguments and returns | ||||
| fuel price value. | ||||
|   | ||||
| @@ -804,9 +804,21 @@ public class Ollama { | ||||
|         ocm.setResponse(request.getPrompt()); | ||||
|         chatRequest.setMessages(msgs); | ||||
|         msgs.add(ocm); | ||||
|  | ||||
|         // Merge request's tools and globally registered tools into a new list to avoid mutating the | ||||
|         // original request | ||||
|         List<Tools.Tool> allTools = new ArrayList<>(); | ||||
|         if (request.getTools() != null) { | ||||
|             allTools.addAll(request.getTools()); | ||||
|         } | ||||
|         List<Tools.Tool> registeredTools = this.getRegisteredTools(); | ||||
|         if (registeredTools != null) { | ||||
|             allTools.addAll(registeredTools); | ||||
|         } | ||||
|  | ||||
|         OllamaChatTokenHandler hdlr = null; | ||||
|         chatRequest.setUseTools(true); | ||||
|         chatRequest.setTools(request.getTools()); | ||||
|         chatRequest.setTools(allTools); | ||||
|         if (streamObserver != null) { | ||||
|             chatRequest.setStream(true); | ||||
|             if (streamObserver.getResponseStreamHandler() != null) { | ||||
|   | ||||
		Reference in New Issue
	
	Block a user