AshAi
View SourceDocumentation for AshAi
.
tools
Nested DSLs
tools.tool
tool name, resource, action
Expose an Ash action as a tool that can be called by LLMs.
Tools allow LLMs to interact with your application by calling specific actions on resources.
Only public attributes can be used for filtering, sorting, and aggregation, but the load
option allows including private attributes in the response data.
Arguments
Name | Type | Default | Docs |
---|---|---|---|
name | atom | ||
resource | module | ||
action | atom |
Options
Name | Type | Default | Docs |
---|---|---|---|
load | any | [] | A list of relationships and calculations to load on the returned records. Note that loaded fields can include private attributes, which will then be included in the tool's response. However, private attributes cannot be used for filtering, sorting, or aggregation. |
async | boolean | true | |
description | String.t | A description for the tool. Defaults to the action's description. | |
identity | atom | The identity to use for update/destroy actions. Defaults to the primary key. Set to false to disable entirely. |
Introspection
Target: AshAi.Tool
vectorize
Nested DSLs
Options
Name | Type | Default | Docs |
---|---|---|---|
embedding_model | module | ||
attributes | keyword | [] | A keyword list of attributes to vectorize, and the name of the attribute to store the vector in |
strategy | :after_action | :manual | :ash_oban | :ash_oban_manual | :after_action | How to compute the vector. Currently supported strategies are :after_action , :manual , and :ash_oban . |
define_update_action_for_manual_strategy? | boolean | true | If true, an ash_ai_update_embeddings update action will be defined, which will automatically update the embeddings when run. |
ash_oban_trigger_name | atom | :ash_ai_update_embeddings | The name of the AshOban-trigger that will be run in order to update the record's embeddings. Defaults to :ash_ai_update_embeddings . |
vectorize.full_text
Options
Name | Type | Default | Docs |
---|---|---|---|
text | (any -> any) | A function or expr that takes a list of records and computes a full text string that will be vectorized. If given an expr, use atomic_ref to refer to new values, as this is set as an atomic update. | |
name | atom | :full_text_vector | The name of the attribute to store the text vector in |
used_attributes | list(atom) | If set, a vector is only regenerated when these attributes are changed |