githubEdit

πŸ”—Standard Links

Links are the processing units of the Conserver. Each link performs a specific operation on a vCon as it flows through a chain. Links can analyze content, transform data, route vCons, integrate with external services, and more.

All links implement the same interface:

def run(vcon_uuid: str, link_name: str, opts: dict = default_options) -> str | None:
    """
    Process a vCon through this link.

    Args:
        vcon_uuid: UUID of the vCon to process
        link_name: Name of this link in the configuration
        opts: Configuration options merged with defaults

    Returns:
        vcon_uuid: Continue processing with this vCon UUID
        None: Stop chain processing (filter out this vCon)
    """

These links convert audio recordings in vCon dialogs to text transcripts.


Speech-to-text transcription using the Deepgram API with automatic language detection and confidence scoring.

Option
Description
Default

DEEPGRAM_KEY

Deepgram API key

(required)

minimum_duration

Minimum audio duration in seconds to transcribe

30

api.model

Deepgram model to use

nova-2

api.smart_format

Enable smart formatting

true

api.detect_language

Enable automatic language detection

true


groq_whisper

Speech-to-text transcription using Groq's implementation of the Whisper ASR model.

Option
Description
Default

GROQ_API_KEY

Groq API key

(required)

model

Whisper model to use

whisper-large-v3

minimum_duration

Minimum audio duration in seconds

3


hugging_face_whisper

Speech-to-text transcription using Hugging Face's Whisper implementation, supporting both API-based and local inference.

Option
Description
Default

model

Hugging Face model identifier

openai/whisper-large-v3

minimum_duration

Minimum audio duration in seconds

3


openai_transcribe

Speech-to-text transcription using OpenAI's Whisper API or Azure OpenAI. Supports automatic chunking for long audio files.

Option
Description
Default

OPENAI_API_KEY

OpenAI API key

(none)

AZURE_OPENAI_API_KEY

Azure OpenAI API key

(none)

AZURE_OPENAI_ENDPOINT

Azure OpenAI endpoint URL

(none)

model

Model to use

gpt-4o-transcribe

language

Language code

en

minimum_duration

Minimum audio duration in seconds

3

max_chunk_duration

Maximum chunk duration for splitting

480 (8 min)

use_silence_chunking

Split at silence points

true

silence_thresh

Silence threshold in dBFS

-40

silence_len

Minimum silence length in ms

2000


transcribe

Local transcription using the vCon library's built-in transcription capabilities.

Option
Description
Default

transcribe_options.model_size

Model size

base

transcribe_options.output_options

Output format options

["vendor"]


These links use AI to analyze and extract insights from vCon content.


analyze

OpenAI-powered analysis of vCon transcripts with customizable prompts, sampling, and retry mechanisms.

Option
Description
Default

OPENAI_API_KEY

OpenAI API key

(required)

prompt

Analysis prompt

(required)

analysis_type

Type label for the analysis

summary

model

OpenAI model

gpt-3.5-turbo-16k

sampling_rate

Fraction of vCons to analyze (0-1)

1

temperature

Model temperature

0.3

source.analysis_type

Source analysis type to analyze

transcript

source.text_location

Path to text within source

body.text


analyze_vcon

AI analysis of entire vCon objects, returning structured JSON output.

Option
Description
Default

OPENAI_API_KEY

OpenAI API key

(required)

system_prompt

System prompt for the model

(optional)

prompt

Analysis prompt

(required)

analysis_type

Type label for the analysis

vcon_analysis

model

OpenAI model

gpt-4-turbo


detect_engagement

Detects whether both parties actively engaged in a conversation.

Option
Description
Default

OPENAI_API_KEY

OpenAI API key

(required)

prompt

Evaluation prompt

(engagement detection prompt)

analysis_type

Type label

engagement_analysis

model

OpenAI model

gpt-4.1

sampling_rate

Fraction to process

1

Adds an engagement tag with value true or false.


analyze_and_label

Combined analysis that extracts labels/categories and applies them as tags.

Option
Description
Default

OPENAI_API_KEY

OpenAI API key

(required)

prompt

Label extraction prompt

(categorization prompt)

analysis_type

Type label

labeled_analysis

model

OpenAI model

gpt-4-turbo

response_format

Response format

{"type": "json_object"}

Returns JSON with labels array and applies each label as a tag.


check_and_tag

Evaluates a condition using AI and applies a tag if the condition is met.

Option
Description
Default

OPENAI_API_KEY

OpenAI API key

(required)

tag_name

Tag name to apply

(required)

tag_value

Tag value to apply

(required)

evaluation_question

Question to evaluate

(required)

model

OpenAI model

gpt-5


AI analysis using Hugging Face language models, supporting both API and local inference.

Option
Description
Default

model

Hugging Face model identifier

(required)

prompt

Analysis prompt

(required)

analysis_type

Type label

hf_analysis


These links control vCon flow through chains.


sampler

Selectively processes vCons based on various sampling methods.

Option
Description
Default

method

Sampling method

percentage

percentage

Percentage to process (0-100)

100

rate

Process 1 out of N

1

modulo

Process if UUID modulo equals 0

1

Returns None for filtered vCons, stopping their chain processing.


Filters vCons using jq expressions for complex content-based filtering.

Option
Description
Default

expression

jq expression to evaluate

(required)

forward_on_match

Continue chain if expression matches

true

forward_list

Alternative ingress list for matches

(none)


tag_router

Routes vCons to different Redis lists based on their tags.

Option
Description
Default

routes

List of routing rules

[]

routes[].tag_name

Tag name to match

(required)

routes[].tag_value

Tag value to match

(required)

routes[].destination

Destination Redis list

(required)

default_destination

Fallback destination

(none)


These links modify vCon content.


tag

Adds configurable tags to vCons.

Option
Description
Default

tags

List of tags to add

[]

tags[].name

Tag name

(required)

tags[].value

Tag value

(required)


diet

Reduces vCon size by removing or redirecting elements. Useful for data minimization and privacy.

Option
Description
Default

remove_dialog_bodies

Remove dialog body content

false

remove_attachments

Remove all attachments

false

remove_analysis_types

Analysis types to remove

[]

redirect_media_to_storage

Move media to storage

(none)

remove_system_prompts

Remove system prompts

false


expire_vcon

Sets an expiration time for vCons in Redis for automatic cleanup.

Option
Description
Default

expire_seconds

TTL in seconds

(required)


These links connect to external services.


webhook

Sends vCons to external webhook URLs.

Option
Description
Default

url

Webhook URL

(required)

method

HTTP method

POST

headers

HTTP headers

{}

include_vcon

Include full vCon in payload

true

timeout

Request timeout in seconds

30


post_analysis_to_slack

Posts vCon analysis results to Slack channels.

Option
Description
Default

webhook_url

Slack webhook URL

(required)

channel

Slack channel

(required)

analysis_type

Analysis type to post

summary

template

Message template

{body}

condition

Optional tag condition

(none)


These links provide integrity and audit trail capabilities.


datatrails

Creates verifiable audit trails using the DataTrails platform, mapping to SCITT envelopes.

Option
Description
Default

client_id

DataTrails client ID

(required)

client_secret

DataTrails client secret

(required)

asset_id

Asset identifier

(required)

event_type

Event type label

vcon_event

include_hash

Include content hash

true


scitt

Creates and registers signed statements on a SCITT Transparency Service for verifiable integrity.

Option
Description
Default

service_url

SCITT service URL

(required)

signing_key_path

Path to signing key

(required)

include_receipt

Store receipt in vCon

true


Links are combined into chains in the configuration:

Links execute in order. If any link returns None, chain processing stops for that vCon.

Common Patterns

Conditional Processing

Use sampler or jq_link to process only certain vCons:

Multi-stage Analysis

Chain multiple analysis links for comprehensive processing:

Tag-based Routing

Use tags to route vCons to different downstream chains:

Last updated

Was this helpful?