Core infrastructure services for Firebase, Solana, AI, and storage operations with Pydantic-based modular architecture and clean separation of concerns.
For complete documentation, see:
- docs/features/FIREBASE_INTEGRATION.md - Firebase/Firestore
- docs/features/AI_GENERATION.md - AI services
- docs/architecture/ORCHESTRATORS.md - Service orchestration
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.
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
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")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")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
)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)- ✅ 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
📖 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