DataBridge Docs
  • DataBridge Docs
  • Getting Started
    • Installation
    • Quick Start
  • API Reference
    • Overview
    • Endpoints
      • Ingest
      • Search
      • Query
      • Cache
      • Response Models
  • User Guides
    • Shell
    • Document Ingestion
    • Processing Rules
    • Semantic Search
    • Completions
    • Monitoring & Observability
Powered by GitBook
On this page
  • Getting Started
  • Basic Usage
  • Features
  • Getting Help
  • Shell Tips
  • Common Tasks
  • Document Management
  • Search Operations
  • Completions
  • Usage Analytics
  • Next Steps
  1. User Guides

Shell

This guide explains how to use the DataBridge interactive shell for quick experimentation and debugging.

Getting Started

The DataBridge shell provides an interactive Python environment with the SDK pre-configured. To start the shell:

# Without authentication (connects to localhost:8000):
python shell.py

# With authentication (using a generated URI):
python shell.py "databridge://user:token@localhost:8000"

The shell will automatically:

  • Connect to http://localhost:8000 if no URI is provided

  • Convert databridge:// to http:// for localhost URIs

  • Handle authentication when a URI with credentials is provided

Basic Usage

Once the shell starts, you'll have access to a db object that provides all SDK functionality:

# Ingest text content
doc = db.ingest_text(
    content="Machine learning is fascinating...",
    metadata={"title": "ML Introduction"}
)
print(f"Document ID: {doc['external_id']}")

# Ingest a file
doc = db.ingest_file(
    file="research_paper.pdf",
    filename="research_paper.pdf",
    metadata={"category": "research"}
)
print(f"Document ID: {doc['external_id']}")

# Search for content
chunks = db.retrieve_chunks(
    query="What are the key findings?",
    filters={"category": "research"},
    k=4,
    min_score=0.7
)

for chunk in chunks:
    print(f"Score: {chunk['score']}")
    print(f"Content: {chunk['content']}")
    print("---")

Features

The shell environment includes:

  • Tab completion for methods and attributes

  • Command history (use arrow keys)

  • Access to all SDK functionality

  • Pretty-printed results

  • Built-in help system

Getting Help

To see available methods and documentation:

# List all available methods
help(db)

# Get help for a specific method
help(db.ingest_text)
help(db.retrieve_chunks)

Shell Tips

  1. Command History

    • Use up/down arrow keys to cycle through previous commands

    • Commands persist between sessions

  2. Tab Completion

    • Press Tab to complete method names

    • Press Tab twice to see all available completions

  3. Multiline Input

    • For long commands, you can write multiple lines

    • The shell will wait for complete Python statements

  4. Exit

    • Use Ctrl+D or type exit() to exit the shell

Common Tasks

Document Management

# List recent documents
docs = db.list_documents(limit=5)
for doc in docs:
    print(f"ID: {doc['external_id']}")
    print(f"Title: {doc['metadata'].get('title')}")
    print("---")

# Get document by ID
doc = db.get_document("doc_123")
print(f"Content Type: {doc['content_type']}")
print(f"Metadata: {doc['metadata']}")

Search Operations

# Basic search
results = db.retrieve_chunks("machine learning applications")

# Search with filters
results = db.retrieve_chunks(
    query="machine learning",
    filters={"category": "research", "year": 2024}
)

# Document-level search
docs = db.retrieve_docs(
    query="machine learning",
    k=4,
    min_score=0.7
)

Completions

# Generate completion
response = db.complete(
    prompt="Summarize the key findings",
    context_filter={"category": "research"}
)
print(f"Completion: {response['text']}")
print(f"Tokens Used: {response['usage']['total_tokens']}")

Usage Analytics

# Get recent usage
from datetime import datetime, timedelta

usage = db.get_recent_usage(
    since=datetime.now() - timedelta(days=7),
    operation_type="search"
)

for record in usage:
    print(f"Operation: {record['operation_type']}")
    print(f"Tokens: {record['tokens_used']}")
    print(f"Duration: {record['duration_ms']}ms")

Next Steps

After getting comfortable with the shell:

  1. Write scripts for automated tasks

  2. Set up proper error handling

  3. Implement production workflows

  4. Use the SDK in your applications

PreviousResponse ModelsNextDocument Ingestion

Last updated 4 months ago