Skip to content

Latest commit

 

History

History
132 lines (96 loc) · 3.57 KB

File metadata and controls

132 lines (96 loc) · 3.57 KB

Services Layer

Core infrastructure services for Firebase, Solana, AI, and storage operations with Pydantic-based modular architecture and clean separation of concerns.

For complete documentation, see:


Quick Overview

The services layer provides:

  • SimpleFirebaseService: Firestore database with reactive watchers
  • SimpleSolanaService: Blockchain wallet balance queries
  • AI Services: LiteLLM, CLIP embeddings, image generation
  • GeneratedMemecoinStorage: File-based storage for generated memecoins

All data models use Pydantic v2 BaseModel for type safety and validation.

Architecture

src/services/
├── simple_firebase_service.py    # Firestore singleton
├── simple_solana_service.py      # Blockchain operations
├── generated_memecoin_storage.py  # File-based storage
└── ai/                           # AI services
    ├── litellm_service.py        # Multi-provider LLM
    ├── clip_embedding_service.py # CLIP embeddings
    └── image_generation_service.py # Replicate images

Quick Start

Firebase Service

from src.services.simple_firebase_service import SimpleFirebaseService

# Initialize (singleton pattern)
firebase = SimpleFirebaseService()
await firebase.initialize()

# Create document
await firebase.create_document(
    collection="wallets",
    document_id="wallet_address",
    data={"sol_balance": 10.0, "status": "FUNDED"}
)

# Query collection
wallets = await firebase.get_collection("wallets")

Solana Service

from src.services.simple_solana_service import SimpleSolanaService

# Initialize
solana = SimpleSolanaService(network="devnet")
await solana.initialize()

# Get balance
balance = await solana.get_balance("wallet_address")
print(f"Balance: {balance} SOL")

AI Services

from src.ai_generation.litellm_service import LiteLLMService

# Initialize LLM service
llm_service = LiteLLMService()
await llm_service.initialize()

# Generate text
response = await llm_service.query_llm(
    model="gpt-4-turbo",
    prompt="Generate memecoin description",
    temperature=0.7
)

Generated Memecoin Storage

from src.services.generated_memecoin_storage import GeneratedMemecoinStorage

# Initialize
storage = GeneratedMemecoinStorage()

# Save generated memecoin
await storage.save_memecoin(memecoin_entry)

# Load by ID
memecoin = await storage.load_memecoin(memecoin_id)

Key Features

  • Singleton Pattern: Prevents duplicate service connections
  • Pydantic v2: Type-safe data models with validation
  • Async/Await: Full async support
  • Reactive Watchers: Real-time Firebase updates
  • Multi-Provider LLM: OpenAI, Anthropic, Gemini support
  • CLIP Embeddings: 768-dim semantic vectors

Documentation

📖 Firebase integration: docs/features/FIREBASE_INTEGRATION.md

Includes:

  • Singleton service pattern
  • 5 Firestore collections
  • Reactive watchers (100-300ms latency)
  • Cache-first strategies

📖 AI services: docs/features/AI_GENERATION.md

Includes:

  • LiteLLM multi-provider setup
  • CLIP embedding generation
  • Image generation via Replicate
  • Token usage optimization

Part of LaunchAgencyBot - Core infrastructure services