# dictionary

A RocketRide text-processing node that uses an LLM to extract a glossary of domain-specific terms from documents.

## What it does

Reads text and uses a connected LLM to extract a dictionary of domain-specific terms, acronyms, and company-specific vocabulary, including terms that are ambiguous or whose company meaning differs from common usage. Each extracted term is emitted as a separate document whose content is a `{"term": "...", "description": "..."}` JSON object.

Both plain text and table content are handled the same way: each incoming chunk is sent to the LLM with a structured prompt (`expectJson: true`), the LLM returns a single JSON array of definitions, and the node writes one output document per definition. Output documents are stamped with an incrementing `chunkId` (reset for each input object) and marked as non-table content (`isTable: false`, `tableId: 0`).

The node has no Python package requirements of its own: it relies entirely on the separately installed AI module.

---

## Connections

| Connection | Required    | Description                          |
|------------|-------------|--------------------------------------|
| `llm`      | yes (min 1) | LLM used to extract and define terms |

---

## Configuration

### Lanes

| Lane in | Lane out    | Description                                                  |
|---------|-------------|--------------------------------------------------------------|
| `text`  | `documents` | Extract term/description pairs, emit one document per term   |

No configuration fields. Connect an LLM and wire text in.

---

## Usage

Place this node after a text source (for example, a parse or preprocessor node) and before a vector store. The output documents can be ingested into a store and queried later to enrich LLM context with domain-specific definitions.

The LLM prompt instructs the model to:

- Pull out company-specific terms, acronyms, and information that may help answer user questions.
- Highlight any terms whose meaning in the document differs from common usage.
- Merge definitions from multiple documents into a single JSON array before returning.
- Return definitions that may overlap when a term has more than one relevant sense.

Example output document for a single extracted term:

```json
{"term": "Red loan", "description": "Credit score less than 650 and delinquent by 60 days or more"}
```

---

<!-- ROCKETRIDE:GENERATED:PARAMS START -->
<!-- Generated by nodes:docs-generate. Do not edit by hand. -->

## Schema

_No configuration fields._

## Source

[<svg viewBox="0 0 16 16" width="15" height="15" fill="currentColor" aria-hidden="true" style="vertical-align:-0.15em;margin-right:0.35em"><path d="M8 0C3.58 0 0 3.58 0 8c0 3.54 2.29 6.53 5.47 7.59.4.07.55-.17.55-.38 0-.19-.01-.82-.01-1.49-2.01.37-2.53-.49-2.69-.94-.09-.23-.48-.94-.82-1.13-.28-.15-.68-.52-.01-.53.63-.01 1.08.58 1.23.82.72 1.21 1.87.87 2.33.66.07-.52.28-.87.51-1.07-1.78-.2-3.64-.89-3.64-3.95 0-.87.31-1.59.82-2.15-.08-.2-.36-1.02.08-2.12 0 0 .67-.21 2.2.82.64-.18 1.32-.27 2-.27.68 0 1.36.09 2 .27 1.53-1.04 2.2-.82 2.2-.82.44 1.1.16 1.92.08 2.12.51.56.82 1.27.82 2.15 0 3.07-1.87 3.75-3.65 3.95.29.25.54.73.54 1.48 0 1.07-.01 1.93-.01 2.2 0 .21.15.46.55.38A8.013 8.013 0 0016 8c0-4.42-3.58-8-8-8z"/></svg> View source](https://github.com/rocketride-org/rocketride-server/tree/develop/nodes/src/nodes/dictionary)
<!-- ROCKETRIDE:GENERATED:PARAMS END -->
