feat: Complete cloud-native CIM Document Processor with full BPCP template
🌐 Cloud-Native Architecture: - Firebase Functions deployment (no Docker) - Supabase database (replacing local PostgreSQL) - Google Cloud Storage integration - Document AI + Agentic RAG processing pipeline - Claude-3.5-Sonnet LLM integration ✅ Full BPCP CIM Review Template (7 sections): - Deal Overview - Business Description - Market & Industry Analysis - Financial Summary (with historical financials table) - Management Team Overview - Preliminary Investment Thesis - Key Questions & Next Steps 🔧 Cloud Migration Improvements: - PostgreSQL → Supabase migration complete - Local storage → Google Cloud Storage - Docker deployment → Firebase Functions - Schema mapping fixes (camelCase/snake_case) - Enhanced error handling and logging - Vector database with fallback mechanisms 📄 Complete End-to-End Cloud Workflow: 1. Upload PDF → Document AI extraction 2. Agentic RAG processing → Structured CIM data 3. Store in Supabase → Vector embeddings 4. Auto-generate PDF → Full BPCP template 5. Download complete CIM review 🚀 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
32
backend/vector_function.sql
Normal file
32
backend/vector_function.sql
Normal file
@@ -0,0 +1,32 @@
|
||||
-- Enable pgvector extension (if not already enabled)
|
||||
CREATE EXTENSION IF NOT EXISTS vector;
|
||||
|
||||
-- Create vector similarity search function
|
||||
CREATE OR REPLACE FUNCTION match_document_chunks(
|
||||
query_embedding VECTOR(1536),
|
||||
match_threshold FLOAT DEFAULT 0.7,
|
||||
match_count INTEGER DEFAULT 10
|
||||
)
|
||||
RETURNS TABLE (
|
||||
id UUID,
|
||||
document_id TEXT,
|
||||
content TEXT,
|
||||
metadata JSONB,
|
||||
chunk_index INTEGER,
|
||||
similarity FLOAT
|
||||
)
|
||||
LANGUAGE SQL STABLE
|
||||
AS $$
|
||||
SELECT
|
||||
document_chunks.id,
|
||||
document_chunks.document_id,
|
||||
document_chunks.content,
|
||||
document_chunks.metadata,
|
||||
document_chunks.chunk_index,
|
||||
1 - (document_chunks.embedding <=> query_embedding) AS similarity
|
||||
FROM document_chunks
|
||||
WHERE document_chunks.embedding IS NOT NULL
|
||||
AND 1 - (document_chunks.embedding <=> query_embedding) > match_threshold
|
||||
ORDER BY document_chunks.embedding <=> query_embedding
|
||||
LIMIT match_count;
|
||||
$$;
|
||||
Reference in New Issue
Block a user