Skip to main content

ollama

Processes data through an Ollama instance

Description

This processor runs provided records through a specified model on a provided Ollama instance. It uses the provided prompt to transform the incoming records.

Configuration parameters

version: 2.2
pipelines:
- id: example
status: running
connectors:
# define source and destination ...
processors:
- id: example
plugin: "ollama"
settings:
# Field is the reference to the field to process. Defaults to
# ".Payload.After".
# Type: string
field: ".Payload.After"
# Model is the name of the model used with ollama
# Type: string
model: "llama3.2"
# Prompt is the prompt to pass into ollama to tranform the data
# Type: string
prompt: ""
# Whether to decode the record key using its corresponding schema from
# the schema registry.
# Type: bool
sdk.schema.decode.key.enabled: "true"
# Whether to decode the record payload using its corresponding schema
# from the schema registry.
# Type: bool
sdk.schema.decode.payload.enabled: "true"
# Whether to encode the record key using its corresponding schema from
# the schema registry.
# Type: bool
sdk.schema.encode.key.enabled: "true"
# Whether to encode the record payload using its corresponding schema
# from the schema registry.
# Type: bool
sdk.schema.encode.payload.enabled: "true"
# OllamaURL is the url to the ollama instance
# Type: string
url: ""

Examples

Ollama Prompt Example

This example will process the record stored in .Payload.After. The model is prompted to return the records unchanged. The records are returned as a JSON with the same format as the data.

Configuration parameters

version: 2.2
pipelines:
- id: example
status: running
connectors:
# define source and destination ...
processors:
- id: example
plugin: "ollama"
settings:
field: ".Payload.After"
model: "llama3.2"
prompt: "Take the incoming record in JSON format, with a structure of {'test-field': integer}. Add one to the value of the integer and return that field."
url: "http://localhost:11434"

Record difference

Before
After
1
{
1
{
2
  "position": "dGVzdC1wb3NpdGlvbg==",
2
  "position": "dGVzdC1wb3NpdGlvbg==",
3
  "operation": "create",
3
  "operation": "create",
4
  "metadata": {
4
  "metadata": {
5
    "key1": "val1"
5
    "key1": "val1"
6
  },
6
  },
7
  "key": "test-key",
7
  "key": "test-key",
8
  "payload": {
8
  "payload": {
9
    "before": null,
9
    "before": null,
10
    "after": {
10
    "after": {
11
-
      "test-field": 123
11
+
      "test-field": 124
12
    }
12
    }
13
  }
13
  }
14
}
14
}

scarf pixel conduit-site-docs-using-processors