🔒
Conserver.io
  • 👋Welcome to the Home of the vCons
  • vCons
    • 💬A vCon Primer
    • 🌎vCons are...
    • 🧠Why vCons?
    • 💡Concepts
    • ✨More Information
  • vCon Library
    • 🐰Quickstart
    • Library API
    • Cheat Sheet
    • GitHub Repo
  • Conserver
    • 🚀Conserver Introduction
    • 🐰Conserver Quick Start
    • Configuring the Conserver
    • 🏫Concepts
    • ❤️Inside the Conserver
    • 🔗Standard Links
    • 🗄️Storage
    • 📆Day In the Life of a vCon
    • 🧩API
    • 🔌Integrating Your App
    • GitHub Repo
  • Tools
    • vCon Faker
    • vCon Admin
    • Mongo Redis Sync
  • vCon Apps and Stores
    • TADHack vCon
    • vCon Stores and Apps
    • vCon App Template
  • Deep Dives
    • GitHub Repo
    • vCon IETF Working Group
  • HELPS and HACKS
    • Coding Prompt Cheat Sheet
    • Fake vCons
  • Use Cases / Studies
    • Overview
    • Service Provider Migration
    • Speech Recognition Test Set
    • AI Integration
    • PII Compliance
    • Customer Experience Improvement
    • Sharing Conversations with Third Parties
    • Verbal Agreements - Converted to Writing
    • Authenticating and Certifying Conversations
    • Insights from Customer Conversations
Powered by GitBook
On this page
  • Basic Usage
  • Parties
  • Dialog
  • Attachments & Analysis
  • Tags & Metadata
  • Security & Validation
  • UUID Generation
  • Properties Reference

Was this helpful?

Edit on GitHub
Export as PDF
  1. vCon Library

Cheat Sheet

Basic Usage

from vcon import Vcon
from vcon.party import Party
from vcon.dialog import Dialog

Creating vCons

# Create new vCon
vcon = Vcon.build_new()

# Create from dictionary
vcon = Vcon({"uuid": "...", "vcon": "0.0.1"})

# Create from JSON
vcon = Vcon.build_from_json(json_string)

Serialization

# To JSON
json_str = vcon.to_json()  # or vcon.dumps()

# To dictionary
dict_data = vcon.to_dict()

Parties

Creating & Adding Parties

# Create party
party = Party(
    tel="+1234567890",
    name="John Doe",
    mailto="john@example.com",
    role="customer",
    meta={"custom": "data"}
)

# Add to vCon
vcon.add_party(party)

# Find party
index = vcon.find_party_index("name", "John Doe")

Dialog

Supported MIME Types

  • Text: text/plain

  • Audio: audio/x-wav, audio/wav, audio/mpeg, audio/mp3, audio/ogg, audio/webm

  • Video: video/x-mp4, video/ogg

Adding Dialog

# Text dialog
dialog = Dialog(
    type="text",
    start="2024-03-21T10:00:00Z",
    parties=[0, 1],
    mimetype="text/plain",
    body="Hello, how can I help?",
    originator=0
)
vcon.add_dialog(dialog)

# Audio dialog with external URL
audio_dialog = Dialog(
    type="recording",
    start="2024-03-21T10:01:00Z",
    parties=[0, 1],
    url="http://example.com/audio.wav",
    mimetype="audio/wav",
    duration=120.5
)
vcon.add_dialog(audio_dialog)

Dialog Methods

# Add inline data
dialog.add_inline_data(
    body="content",
    filename="message.txt",
    mimetype="text/plain"
)

# Add external data
dialog.add_external_data(
    url="http://example.com/file.wav",
    filename="recording.wav",
    mimetype="audio/wav"
)

# Convert external to inline
dialog.to_inline_data()

Attachments & Analysis

Attachments

# Add attachment
vcon.add_attachment(
    type="transcript",
    body="Content here",
    encoding="none"  # Options: "none", "base64", "base64url"
)

# Find attachment
attachment = vcon.find_attachment_by_type("transcript")

Analysis

# Add analysis
vcon.add_analysis(
    type="sentiment",
    dialog=[0],  # Dialog indices
    vendor="analyzer",
    body={"score": 0.8},
    encoding="json",  # Options: "json", "none", "base64url"
)

# Find analysis
analysis = vcon.find_analysis_by_type("sentiment")

Tags & Metadata

# Add tag
vcon.add_tag("category", "support")

# Get tag
value = vcon.get_tag("category")

# Access all tags
tags = vcon.tags

Security & Validation

Signing & Verification

# Generate keys
private_key, public_key = Vcon.generate_key_pair()

# Sign vCon
vcon.sign(private_key)

# Verify signature
is_valid = vcon.verify(public_key)

Validation

# Validate object
is_valid, errors = vcon.is_valid()

# Validate file
is_valid, errors = Vcon.validate_file("conversation.json")

# Validate JSON string
is_valid, errors = Vcon.validate_json(json_string)

UUID Generation

# From domain name
uuid = Vcon.uuid8_domain_name("example.com")

# With custom bits
uuid = Vcon.uuid8_time(custom_bits)

Properties Reference

Vcon Properties

  • uuid: Unique identifier

  • vcon: Version number

  • created_at: Creation timestamp

  • updated_at: Last update timestamp

  • parties: List of participants

  • dialog: List of dialog entries

  • attachments: List of attachments

  • analysis: List of analysis entries

  • redacted: Redaction information

  • group: Group information

  • meta: Metadata

Party Properties

  • tel: Telephone number

  • stir: STIR verification

  • mailto: Email address

  • name: Party name

  • validation: Validation status

  • gmlpos: Geographic position

  • civicaddress: Civic address

  • uuid: Unique identifier

  • role: Party role

  • meta: Additional metadata

PreviousLibrary APINextConserver

Last updated 4 months ago

Was this helpful?