forked from Mirror/ollama4j
Updated generateAsync() API
Signed-off-by: koujalgi.amith@gmail.com <koujalgi.amith@gmail.com>
This commit is contained in:
@@ -1,42 +1,46 @@
|
||||
---
|
||||
sidebar_position: 3
|
||||
sidebar_position: 2
|
||||
---
|
||||
|
||||
# Generate - Async
|
||||
|
||||
This API lets you ask questions to the LLMs in a asynchronous way.
|
||||
These APIs correlate to
|
||||
the [completion](https://github.com/jmorganca/ollama/blob/main/docs/api.md#generate-a-completion) APIs.
|
||||
This is particularly helpful when you want to issue a generate request to the LLM and collect the response in the
|
||||
background (such as threads) without blocking your code until the response arrives from the model.
|
||||
|
||||
This API corresponds to
|
||||
the [completion](https://github.com/jmorganca/ollama/blob/main/docs/api.md#generate-a-completion) API.
|
||||
|
||||
```java
|
||||
public class Main {
|
||||
|
||||
public static void main(String[] args) {
|
||||
|
||||
public static void main(String[] args) throws Exception {
|
||||
String host = "http://localhost:11434/";
|
||||
|
||||
OllamaAPI ollamaAPI = new OllamaAPI(host);
|
||||
ollamaAPI.setRequestTimeoutSeconds(60);
|
||||
String prompt = "List all cricket world cup teams of 2019.";
|
||||
OllamaAsyncResultStreamer streamer = ollamaAPI.generateAsync(OllamaModelType.LLAMA3, prompt, false);
|
||||
|
||||
String prompt = "Who are you?";
|
||||
// Set the poll interval according to your needs.
|
||||
// Smaller the poll interval, more frequently you receive the token.
|
||||
int pollIntervalMilliseconds = 1000;
|
||||
|
||||
OllamaAsyncResultCallback callback = ollamaAPI.generateAsync(OllamaModelType.LLAMA2, prompt);
|
||||
|
||||
while (!callback.isComplete() || !callback.getStream().isEmpty()) {
|
||||
// poll for data from the response stream
|
||||
String result = callback.getStream().poll();
|
||||
if (result != null) {
|
||||
System.out.print(result);
|
||||
while (true) {
|
||||
String tokens = streamer.getStream().poll();
|
||||
System.out.print(tokens);
|
||||
if (!streamer.isAlive()) {
|
||||
break;
|
||||
}
|
||||
Thread.sleep(100);
|
||||
Thread.sleep(pollIntervalMilliseconds);
|
||||
}
|
||||
|
||||
System.out.println("\n------------------------");
|
||||
System.out.println("Complete Response:");
|
||||
System.out.println("------------------------");
|
||||
|
||||
System.out.println(streamer.getResult());
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
You will get a response similar to:
|
||||
|
||||
> I am LLaMA, an AI assistant developed by Meta AI that can understand and respond to human input in a conversational
|
||||
> manner. I am trained on a massive dataset of text from the internet and can generate human-like responses to a wide
|
||||
> range of topics and questions. I can be used to create chatbots, virtual assistants, and other applications that
|
||||
> require
|
||||
> natural language understanding and generation capabilities.
|
||||
You will get a steaming response.
|
||||
@@ -5,8 +5,8 @@ sidebar_position: 4
|
||||
# Generate - With Image Files
|
||||
|
||||
This API lets you ask questions along with the image files to the LLMs.
|
||||
These APIs correlate to
|
||||
the [completion](https://github.com/jmorganca/ollama/blob/main/docs/api.md#generate-a-completion) APIs.
|
||||
This API corresponds to
|
||||
the [completion](https://github.com/jmorganca/ollama/blob/main/docs/api.md#generate-a-completion) API.
|
||||
|
||||
:::note
|
||||
|
||||
|
||||
@@ -5,8 +5,8 @@ sidebar_position: 5
|
||||
# Generate - With Image URLs
|
||||
|
||||
This API lets you ask questions along with the image files to the LLMs.
|
||||
These APIs correlate to
|
||||
the [completion](https://github.com/jmorganca/ollama/blob/main/docs/api.md#generate-a-completion) APIs.
|
||||
This API corresponds to
|
||||
the [completion](https://github.com/jmorganca/ollama/blob/main/docs/api.md#generate-a-completion) API.
|
||||
|
||||
:::note
|
||||
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
---
|
||||
sidebar_position: 2
|
||||
sidebar_position: 3
|
||||
---
|
||||
|
||||
# Generate - With Tools
|
||||
|
||||
This API lets you perform [function calling](https://docs.mistral.ai/capabilities/function_calling/) using LLMs in a
|
||||
synchronous way.
|
||||
This API correlates to
|
||||
This API corresponds to
|
||||
the [generate](https://github.com/ollama/ollama/blob/main/docs/api.md#request-raw-mode) API with `raw` mode.
|
||||
|
||||
:::note
|
||||
|
||||
@@ -5,8 +5,8 @@ sidebar_position: 1
|
||||
# Generate - Sync
|
||||
|
||||
This API lets you ask questions to the LLMs in a synchronous way.
|
||||
These APIs correlate to
|
||||
the [completion](https://github.com/jmorganca/ollama/blob/main/docs/api.md#generate-a-completion) APIs.
|
||||
This API corresponds to
|
||||
the [completion](https://github.com/jmorganca/ollama/blob/main/docs/api.md#generate-a-completion) API.
|
||||
|
||||
Use the `OptionBuilder` to build the `Options` object
|
||||
with [extra parameters](https://github.com/jmorganca/ollama/blob/main/docs/modelfile.md#valid-parameters-and-values).
|
||||
|
||||
Reference in New Issue
Block a user