Pre-Final Backup
This commit is contained in:
@@ -31,6 +31,7 @@
|
||||
### The Problem (in simple terms)
|
||||
|
||||
When a client sends an insurance claim or uploads a contract, they need **proof** that they submitted it on a specific date. Without proof:
|
||||
|
||||
- The insurance company could claim "we never received it"
|
||||
- Deadlines could be disputed
|
||||
- There's no transparency
|
||||
@@ -40,6 +41,7 @@ When a client sends an insurance claim or uploads a contract, they need **proof*
|
||||
A **blockchain** is like a public, tamper-proof notebook. Once you write something in it, **nobody can erase or modify it** — not even the person who wrote it.
|
||||
|
||||
We use the blockchain as a **digital notary**:
|
||||
|
||||
1. We take the uploaded contract PDF
|
||||
2. We create a unique **fingerprint** (hash) of that file
|
||||
3. We write that fingerprint into the blockchain with a timestamp
|
||||
@@ -50,11 +52,13 @@ We use the blockchain as a **digital notary**:
|
||||
### What is a Smart Contract?
|
||||
|
||||
A **smart contract** is a program that runs on the blockchain. Think of it as a vending machine:
|
||||
|
||||
- You put in a coin (send a transaction)
|
||||
- The machine executes its programmed logic
|
||||
- The result is permanent and visible to everyone
|
||||
|
||||
Our smart contract (`DocumentRegistry.sol`) has two main functions:
|
||||
|
||||
- **Register**: Store a document fingerprint with a timestamp
|
||||
- **Verify**: Check if a fingerprint exists and when it was stored
|
||||
|
||||
@@ -64,14 +68,14 @@ Our smart contract (`DocumentRegistry.sol`) has two main functions:
|
||||
|
||||
### Features Implemented
|
||||
|
||||
| Feature | Description |
|
||||
|---------|-------------|
|
||||
| **Auto-Registration** | After AI analyzes a contract, its hash is automatically registered on-chain |
|
||||
| **Manual Registration** | Users can register unregistered contracts via the Blockchain Explorer |
|
||||
| **Document Verification** | Paste any document hash to check if it exists on-chain |
|
||||
| **Transaction Explorer** | View all blockchain transactions with details |
|
||||
| **Network Stats** | Live stats: verified documents, latest block, network status |
|
||||
| **Proof Badges** | Contract list shows which contracts are blockchain-verified |
|
||||
| Feature | Description |
|
||||
| ------------------------- | --------------------------------------------------------------------------- |
|
||||
| **Auto-Registration** | After AI analyzes a contract, its hash is automatically registered on-chain |
|
||||
| **Manual Registration** | Users can register unregistered contracts via the Blockchain Explorer |
|
||||
| **Document Verification** | Paste any document hash to check if it exists on-chain |
|
||||
| **Transaction Explorer** | View all blockchain transactions with details |
|
||||
| **Network Stats** | Live stats: verified documents, latest block, network status |
|
||||
| **Proof Badges** | Contract list shows which contracts are blockchain-verified |
|
||||
|
||||
### What Happens When a User Uploads a Contract?
|
||||
|
||||
@@ -80,6 +84,7 @@ User uploads PDF → AI analyzes it → Blockchain registers the hash
|
||||
```
|
||||
|
||||
The entire flow is automatic. The user doesn't need:
|
||||
|
||||
- ❌ MetaMask or any wallet
|
||||
- ❌ Cryptocurrency knowledge
|
||||
- ❌ To pay anything
|
||||
@@ -129,10 +134,10 @@ flowchart TD
|
||||
|
||||
### Network Modes
|
||||
|
||||
| Mode | When | URL | Cost |
|
||||
|------|------|-----|------|
|
||||
| **Hardhat** | Development | `http://127.0.0.1:8545` | Free (local) |
|
||||
| **Sepolia** | Demo/Presentation | Via Alchemy/Infura RPC | Free (testnet) |
|
||||
| Mode | When | URL | Cost |
|
||||
| ----------- | ----------------- | ----------------------- | -------------- |
|
||||
| **Hardhat** | Development | `http://127.0.0.1:8545` | Free (local) |
|
||||
| **Sepolia** | Demo/Presentation | Via Alchemy/Infura RPC | Free (testnet) |
|
||||
|
||||
The mode is controlled by a single env variable: `BLOCKCHAIN_NETWORK`.
|
||||
|
||||
@@ -178,12 +183,14 @@ flowchart LR
|
||||
```
|
||||
|
||||
#### `registerDocument(bytes32 _docHash)`
|
||||
|
||||
- **Purpose**: Store a document hash on-chain
|
||||
- **Access**: Only the contract owner (our server wallet)
|
||||
- **Guard**: Prevents duplicate registration (same hash can't be registered twice)
|
||||
- **Event**: Emits `DocumentRegistered` for off-chain indexing
|
||||
|
||||
#### `verifyDocument(bytes32 _docHash)`
|
||||
|
||||
- **Purpose**: Check if a hash exists and get its details
|
||||
- **Cost**: Free (read-only, no gas)
|
||||
- **Returns**: `(exists, timestamp, depositor)`
|
||||
@@ -231,6 +238,7 @@ flowchart LR
|
||||
### Why Server-Side?
|
||||
|
||||
Most blockchain dApps require users to install MetaMask and sign transactions. This is bad UX for a BFSI enterprise platform because:
|
||||
|
||||
- Users shouldn't need crypto knowledge
|
||||
- The platform manages documents, not individual users
|
||||
- Server-side signing is more reliable
|
||||
@@ -260,14 +268,14 @@ sequenceDiagram
|
||||
|
||||
### Key Methods
|
||||
|
||||
| Method | Purpose | Gas Cost |
|
||||
|--------|---------|----------|
|
||||
| `hashDocument(fileUrl)` | Download file + compute SHA-256 | None (off-chain) |
|
||||
| `registerOnChain(hash, fileName)` | Send tx to smart contract | ~50,000 gas |
|
||||
| `verifyOnChain(hash)` | Read-only check | Free |
|
||||
| `hashAndRegister(fileUrl, fileName)` | Combined: hash + register | ~50,000 gas |
|
||||
| `getNetworkStats()` | Get block number, total docs | Free |
|
||||
| `isConfigured()` | Check if env vars are set | None |
|
||||
| Method | Purpose | Gas Cost |
|
||||
| ------------------------------------ | ------------------------------- | ---------------- |
|
||||
| `hashDocument(fileUrl)` | Download file + compute SHA-256 | None (off-chain) |
|
||||
| `registerOnChain(hash, fileName)` | Send tx to smart contract | ~50,000 gas |
|
||||
| `verifyOnChain(hash)` | Read-only check | Free |
|
||||
| `hashAndRegister(fileUrl, fileName)` | Combined: hash + register | ~50,000 gas |
|
||||
| `getNetworkStats()` | Get block number, total docs | Free |
|
||||
| `isConfigured()` | Check if env vars are set | None |
|
||||
|
||||
### Graceful Degradation
|
||||
|
||||
@@ -424,6 +432,7 @@ sequenceDiagram
|
||||
participant SA as Server Action
|
||||
participant AI as AI Service
|
||||
participant BS as BlockchainService
|
||||
participant ES as EmailService
|
||||
participant SC as Smart Contract
|
||||
participant DB as PostgreSQL
|
||||
|
||||
@@ -446,6 +455,8 @@ sequenceDiagram
|
||||
|
||||
SA->>DB: Save txHash, blockNumber, etc.
|
||||
SA->>DB: Create BlockchainTransaction
|
||||
SA->>ES: Send analysis + blockchain proof email
|
||||
ES-->>U: Email received (or Ethereal preview in dev)
|
||||
SA-->>UI: Success!
|
||||
|
||||
Note over U,UI: User visits /blockchain
|
||||
@@ -470,6 +481,7 @@ sequenceDiagram
|
||||
## 10. How to Run Locally
|
||||
|
||||
### Prerequisites
|
||||
|
||||
- Node.js installed
|
||||
- The Next.js app running (`npm run dev`)
|
||||
|
||||
@@ -562,6 +574,7 @@ npx hardhat run scripts/deploy.ts --network sepolia
|
||||
### Step 5: Verify on Etherscan
|
||||
|
||||
After deploying, transactions will have real Etherscan links:
|
||||
|
||||
```
|
||||
https://sepolia.etherscan.io/tx/0x...
|
||||
```
|
||||
@@ -570,19 +583,20 @@ https://sepolia.etherscan.io/tx/0x...
|
||||
|
||||
## 12. Technology Choices & Rationale
|
||||
|
||||
| Technology | Why We Chose It |
|
||||
|-----------|----------------|
|
||||
| **Solidity 0.8.24** | Latest stable version with built-in overflow protection |
|
||||
| **Hardhat** | Industry standard for Solidity development, free local blockchain |
|
||||
| **ethers.js v6** | Modern, lightweight, TypeScript-native Ethereum library |
|
||||
| **SHA-256** | Standard cryptographic hash, deterministic, collision-resistant |
|
||||
| **Server-side wallet** | Users don't need MetaMask; enterprise-grade UX |
|
||||
| **Sepolia testnet** | Official Ethereum testnet, free, has Etherscan explorer |
|
||||
| **Graceful degradation** | Blockchain is optional; app works perfectly without it |
|
||||
| Technology | Why We Chose It |
|
||||
| ------------------------ | ----------------------------------------------------------------- |
|
||||
| **Solidity 0.8.24** | Latest stable version with built-in overflow protection |
|
||||
| **Hardhat** | Industry standard for Solidity development, free local blockchain |
|
||||
| **ethers.js v6** | Modern, lightweight, TypeScript-native Ethereum library |
|
||||
| **SHA-256** | Standard cryptographic hash, deterministic, collision-resistant |
|
||||
| **Server-side wallet** | Users don't need MetaMask; enterprise-grade UX |
|
||||
| **Sepolia testnet** | Official Ethereum testnet, free, has Etherscan explorer |
|
||||
| **Graceful degradation** | Blockchain is optional; app works perfectly without it |
|
||||
|
||||
### Why NOT Web3j / Java?
|
||||
|
||||
The original project spec suggested Web3j (Java library). We chose ethers.js instead because:
|
||||
|
||||
1. Our backend is **Next.js/TypeScript**, not Spring Boot
|
||||
2. ethers.js has **better TypeScript support** and is more actively maintained
|
||||
3. Both libraries do the same job — interact with Ethereum — but ethers.js is native to our stack
|
||||
@@ -592,64 +606,70 @@ The original project spec suggested Web3j (Java library). We chose ethers.js ins
|
||||
## 13. File Reference
|
||||
|
||||
### Smart Contract Layer
|
||||
| File | Purpose |
|
||||
|------|---------|
|
||||
|
||||
| File | Purpose |
|
||||
| ------------------------------------------- | ----------------------- |
|
||||
| `blockchain/contracts/DocumentRegistry.sol` | Solidity smart contract |
|
||||
| `blockchain/test/DocumentRegistry.test.ts` | 14 comprehensive tests |
|
||||
| `blockchain/scripts/deploy.ts` | Deployment script |
|
||||
| `blockchain/hardhat.config.ts` | Hardhat configuration |
|
||||
| `blockchain/package.json` | Hardhat dependencies |
|
||||
| `blockchain/test/DocumentRegistry.test.ts` | 14 comprehensive tests |
|
||||
| `blockchain/scripts/deploy.ts` | Deployment script |
|
||||
| `blockchain/hardhat.config.ts` | Hardhat configuration |
|
||||
| `blockchain/package.json` | Hardhat dependencies |
|
||||
|
||||
### Service Layer
|
||||
| File | Purpose |
|
||||
|------|---------|
|
||||
|
||||
| File | Purpose |
|
||||
| ------------------------------------ | ---------------------------- |
|
||||
| `lib/services/blockchain.service.ts` | Core blockchain interactions |
|
||||
| `lib/services/blockchain.types.ts` | TypeScript type definitions |
|
||||
| `lib/services/blockchain.types.ts` | TypeScript type definitions |
|
||||
|
||||
### Server Actions
|
||||
| File | Purpose |
|
||||
|------|---------|
|
||||
| `features/blockchain/api/blockchain.action.ts` | Blockchain server actions |
|
||||
| `features/contracts/api/contract.action.ts` | Updated with auto-registration |
|
||||
|
||||
| File | Purpose |
|
||||
| ---------------------------------------------- | ------------------------------ |
|
||||
| `features/blockchain/api/blockchain.action.ts` | Blockchain server actions |
|
||||
| `features/contracts/api/contract.action.ts` | Updated with auto-registration |
|
||||
|
||||
### Frontend
|
||||
| File | Purpose |
|
||||
|------|---------|
|
||||
| `app/(dashboard)/blockchain/page.tsx` | Blockchain Explorer page |
|
||||
| `app/(dashboard)/blockchain/layout.tsx` | Page metadata |
|
||||
| `components/layout/navigation.tsx` | Updated with blockchain link |
|
||||
|
||||
| File | Purpose |
|
||||
| --------------------------------------- | ---------------------------- |
|
||||
| `app/(dashboard)/blockchain/page.tsx` | Blockchain Explorer page |
|
||||
| `app/(dashboard)/blockchain/layout.tsx` | Page metadata |
|
||||
| `components/layout/navigation.tsx` | Updated with blockchain link |
|
||||
|
||||
### Database
|
||||
| File | Purpose |
|
||||
|------|---------|
|
||||
|
||||
| File | Purpose |
|
||||
| ---------------------- | ------------------------------ |
|
||||
| `prisma/schema.prisma` | Updated with blockchain fields |
|
||||
|
||||
### Configuration
|
||||
| File | Purpose |
|
||||
|------|---------|
|
||||
| `.env` | Blockchain env vars |
|
||||
| `.env.example` | Template for new developers |
|
||||
| `.gitignore` | Blockchain artifacts excluded |
|
||||
|
||||
| File | Purpose |
|
||||
| -------------- | ----------------------------- |
|
||||
| `.env` | Blockchain env vars |
|
||||
| `.env.example` | Template for new developers |
|
||||
| `.gitignore` | Blockchain artifacts excluded |
|
||||
|
||||
---
|
||||
|
||||
## Glossary
|
||||
|
||||
| Term | Definition |
|
||||
|------|-----------|
|
||||
| **Hash** | A fixed-size fingerprint of data. Same input → same output. |
|
||||
| **SHA-256** | A specific hash algorithm producing 256-bit (32-byte) outputs |
|
||||
| **Smart Contract** | A program stored on the blockchain that executes automatically |
|
||||
| **Gas** | The fee for executing operations on Ethereum (free on testnet) |
|
||||
| **Block** | A batch of transactions grouped together on the blockchain |
|
||||
| **Transaction (Tx)** | A single operation on the blockchain (e.g., registering a hash) |
|
||||
| **Tx Hash** | A unique identifier for a transaction (like a receipt number) |
|
||||
| **Block Number** | The sequential number of the block containing a transaction |
|
||||
| **Block Timestamp** | The time the block was created (proof of when the tx happened) |
|
||||
| **Private Key** | Secret key used to sign transactions (like a password) |
|
||||
| **Address** | Public identifier derived from the private key (like a username) |
|
||||
| **ABI** | Application Binary Interface — the "API spec" of a smart contract |
|
||||
| **Hardhat** | Development tool for writing, testing, and deploying smart contracts |
|
||||
| **Sepolia** | Ethereum test network for free experimentation |
|
||||
| **ethers.js** | JavaScript library for interacting with the Ethereum blockchain |
|
||||
| **Faucet** | A service that gives free test ETH for development |
|
||||
| Term | Definition |
|
||||
| -------------------- | -------------------------------------------------------------------- |
|
||||
| **Hash** | A fixed-size fingerprint of data. Same input → same output. |
|
||||
| **SHA-256** | A specific hash algorithm producing 256-bit (32-byte) outputs |
|
||||
| **Smart Contract** | A program stored on the blockchain that executes automatically |
|
||||
| **Gas** | The fee for executing operations on Ethereum (free on testnet) |
|
||||
| **Block** | A batch of transactions grouped together on the blockchain |
|
||||
| **Transaction (Tx)** | A single operation on the blockchain (e.g., registering a hash) |
|
||||
| **Tx Hash** | A unique identifier for a transaction (like a receipt number) |
|
||||
| **Block Number** | The sequential number of the block containing a transaction |
|
||||
| **Block Timestamp** | The time the block was created (proof of when the tx happened) |
|
||||
| **Private Key** | Secret key used to sign transactions (like a password) |
|
||||
| **Address** | Public identifier derived from the private key (like a username) |
|
||||
| **ABI** | Application Binary Interface — the "API spec" of a smart contract |
|
||||
| **Hardhat** | Development tool for writing, testing, and deploying smart contracts |
|
||||
| **Sepolia** | Ethereum test network for free experimentation |
|
||||
| **ethers.js** | JavaScript library for interacting with the Ethereum blockchain |
|
||||
| **Faucet** | A service that gives free test ETH for development |
|
||||
|
||||
80
docs/lexichain-full-system.md
Normal file
80
docs/lexichain-full-system.md
Normal file
@@ -0,0 +1,80 @@
|
||||
# LexiChain: Intelligent BFSI Contract Management System
|
||||
|
||||
## 🌟 The Platform Vision
|
||||
**LexiChain** is a state-of-the-art enterprise platform designed specifically for the **BFSI** (Banking, Financial Services, and Insurance) sector. The core objective is to solve the historical problem of "Information Silos" and "Trust Gaps" in contract management.
|
||||
|
||||
In the traditional world, insurance policies and bank loans are long, complex, and opaque. LexiChain uses **Generative AI** to make these documents "conversational" and **Blockchain Technology** to make them "tamper-proof."
|
||||
|
||||
---
|
||||
|
||||
## 🏗️ System Architecture
|
||||
The platform follows a **Modular Full-Stack Architecture** designed for scalability, security, and high performance. It is divided into three distinct layers:
|
||||
|
||||
### 1. The Presentation Layer (Frontend)
|
||||
Built with **React and Next.js**, the interface provides a "Premium Executive" experience. It is fully responsive, theme-aware, and designed for high-density information display. It uses **Server Components** for fast loading and **Client Components** for interactive elements like the AI Chat and Blockchain Explorer.
|
||||
|
||||
### 2. The Intelligence & Processing Layer (Backend)
|
||||
This is the "Brain" of LexiChain. It handles:
|
||||
* **Authentication**: Managed by **Clerk**, providing enterprise-grade security and multi-factor authentication.
|
||||
* **File Orchestration**: Securely handling document uploads and cloud storage.
|
||||
* **AI Pipeline**: Converting raw PDF data into structured knowledge.
|
||||
* **Blockchain Bridge**: Acting as a middleware between the web app and the decentralized network.
|
||||
|
||||
### 3. The Persistence Layer (Database)
|
||||
We use a **PostgreSQL** database managed by **Prisma ORM**. This stores all user metadata, contract details, and the historical "Audit Trail" of blockchain transactions.
|
||||
|
||||
---
|
||||
|
||||
## 🤖 Core Pillar 1: AI & Retrieval-Augmented Generation (RAG)
|
||||
LexiChain doesn't just "read" your contracts; it "understands" them. We implement a pattern called **RAG (Retrieval-Augmented Generation)**.
|
||||
|
||||
### How it works:
|
||||
1. **Ingestion & Parsing**: When a contract is uploaded, our AI service (powered by **Google Gemini**) breaks the document down into small "semantic chunks."
|
||||
2. **Vector Indexing**: These chunks are indexed based on their meaning.
|
||||
3. **Contextual Retrieval**: When you ask a question like *"Does this policy cover water damage?"*, the system doesn't search for keywords. It searches for **Concepts**.
|
||||
4. **Informed Response**: The AI retrieves the relevant sections of your contract and uses them as "facts" to generate a precise, grounded answer. This eliminates "hallucinations" and ensures 100% accuracy based on your actual document.
|
||||
|
||||
---
|
||||
|
||||
## 🔗 Core Pillar 2: The Blockchain Trust Layer
|
||||
In the BFSI industry, "when" and "what" was signed is everything. LexiChain uses an **Ethereum-based Smart Contract** to establish absolute trust.
|
||||
|
||||
### The Problem it Solves:
|
||||
If a user and a bank have a dispute, the bank could theoretically change the digital contract in their database. LexiChain prevents this through **Immutable Proof-of-Deposit**.
|
||||
|
||||
### Key Concepts Implemented:
|
||||
* **Cryptographic Fingerprinting (Hashing)**: We generate a unique SHA-256 hash of the contract. This fingerprint is mathematically tied to every single character in the document.
|
||||
* **Smart Contract Execution**: The platform automatically sends this fingerprint to a **Solidity Smart Contract** on the blockchain.
|
||||
* **Immutable Timestamping**: Once the transaction is "mined," it is given a permanent timestamp by the network. This provides an **indisputable proof** that the document existed in that exact state on that specific date.
|
||||
* **Decentralized Verification**: Anyone with the file can verify it against the blockchain record. If even one comma is changed in the PDF, the verification will fail.
|
||||
|
||||
---
|
||||
|
||||
## 🔄 The Integrated Workflow (The App Journey)
|
||||
1. **Upload**: The user securely uploads a contract (Insurance policy, Loan agreement, etc.).
|
||||
2. **AI Extraction**: The AI immediately extracts key data points (Expiration date, Total value, Involved parties) to populate the dashboard.
|
||||
3. **Semantic Indexing**: The document is prepared for the RAG-based Chat interface.
|
||||
4. **On-Chain Registration**: Simultaneously, the system computes the document's hash and registers it on the blockchain.
|
||||
5. **Interaction**: The user can now "Chat" with their document or verify its "Blockchain Status" via the Explorer.
|
||||
|
||||
---
|
||||
|
||||
## 🛠️ The Technology Stack
|
||||
* **Frontend/Backend Framework**: Next.js 15+ (App Router).
|
||||
* **Styling**: TailwindCSS with Custom Framer Motion animations.
|
||||
* **Database**: PostgreSQL with Prisma ORM.
|
||||
* **AI Engine**: Google Gemini Pro (Vision & Text).
|
||||
* **Blockchain Environment**: Hardhat (Local) & Sepolia (Public Testnet).
|
||||
* **Smart Contract Language**: Solidity 0.8.24.
|
||||
* **Blockchain Integration**: Ethers.js v6.
|
||||
* **File Storage**: UploadThing.
|
||||
* **Security/Auth**: Clerk Auth.
|
||||
|
||||
---
|
||||
|
||||
## 📈 Software Engineering Principles Used
|
||||
* **Separation of Concerns**: The AI, Blockchain, and Core Business logic are kept in separate services to prevent "God Objects."
|
||||
* **Idempotency**: Blockchain registrations are designed to be idempotent (you can't register the same hash twice).
|
||||
* **Graceful Degradation**: If the blockchain network is down, the AI and Core App features continue to work normally.
|
||||
* **Data Integrity**: Using SHA-256 ensures that the data being audited is exactly the data that was signed.
|
||||
* **Scalability**: The RAG architecture allows the system to handle thousands of documents without slowing down the AI responses.
|
||||
85
docs/project-technical-overview.md
Normal file
85
docs/project-technical-overview.md
Normal file
@@ -0,0 +1,85 @@
|
||||
# LexiChain — Technical Platform Overview
|
||||
|
||||
## 1. Executive Summary: What is LexiChain?
|
||||
**LexiChain** is an advanced intelligence platform specifically designed for the **BFSI** (Banking, Financial Services, and Insurance) sector. It transforms complex, opaque legal documents into interactive, actionable data using a combination of **Generative AI** and **Blockchain Technology**.
|
||||
|
||||
The core mission of LexiChain is to solve the "Black Box" problem in contracts: where clients and institutions often sign long documents without fully understanding the hidden risks, obligations, or deadlines.
|
||||
|
||||
---
|
||||
|
||||
## 2. The Core Problem & Solution
|
||||
### The Problem
|
||||
* **Cognitive Overload**: Insurance and banking contracts are filled with "Legalese"—dense, technical language that is difficult for non-experts to parse.
|
||||
* **Lack of Trust**: There is no easy way to prove that a document hasn't been modified after signing.
|
||||
* **Static Data**: Traditional PDFs are "dead" files. You cannot ask a PDF a question like *"What happens if I miss a payment by 3 days?"*
|
||||
|
||||
### The LexiChain Solution
|
||||
LexiChain creates a **"Living Document"** environment. It uses AI to extract meaning and Blockchain to guarantee integrity, allowing users to converse with their contracts in natural language.
|
||||
|
||||
---
|
||||
|
||||
## 3. System Architecture
|
||||
LexiChain is built using a modern **Distributed Architecture** composed of four primary layers:
|
||||
|
||||
### A. The Client Layer (Frontend)
|
||||
Built with **Next.js 15** and **Tailwind CSS**. It focuses on **User Experience (UX)**, providing a dashboard that works seamlessly on both desktop and mobile. It handles the secure transmission of files to the backend.
|
||||
|
||||
### B. The Application Layer (Backend)
|
||||
This is the "Brain" of the system, powered by **Next.js Server Actions**. It coordinates the flow of data between the user, the database, the AI models, and the blockchain network. It manages authentication, file storage, and the processing pipeline.
|
||||
|
||||
### C. The Intelligence Layer (AI & RAG)
|
||||
This layer uses **Gemini 1.5 Pro** and **Mistral AI** for high-speed analysis. Instead of just "reading" text, it uses a **Vector Database** to perform Retrieval-Augmented Generation (RAG), ensuring the AI answers only based on the specific facts found in the uploaded contract.
|
||||
|
||||
### D. The Trust Layer (Blockchain)
|
||||
A decentralized layer powered by **Ethereum/Hardhat**. It creates a unique cryptographic "fingerprint" (hash) for every contract. Once recorded, this fingerprint becomes an immutable proof of the document's existence and original state.
|
||||
|
||||
---
|
||||
|
||||
## 4. How the Application Works (The Pipeline)
|
||||
|
||||
1. **Intake**: The user uploads a contract (PDF/Image).
|
||||
2. **OCR & Parsing**: The system converts the document into machine-readable text.
|
||||
3. **Semantic Chunking**: The text is broken down into small "concepts" or chunks.
|
||||
4. **AI Analysis**: The AI extracts key metadata (Dates, Parties, Obligations, Risks).
|
||||
5. **Blockchain Certification**: The document hash is sent to a Smart Contract to lock in the "Proof of Deposit."
|
||||
6. **RAG Indexing**: The chunks are stored in a specialized index for the Chat interface.
|
||||
7. **Interaction**: The user can now ask questions, view the blockchain proof, or check their dashboard for upcoming contract deadlines.
|
||||
|
||||
---
|
||||
|
||||
## 5. Deep Dive: RAG (Retrieval-Augmented Generation)
|
||||
### What is it?
|
||||
In simple terms, RAG is like giving the AI a **"Open Book Exam."**
|
||||
|
||||
Most AI models rely on what they learned during training (which might be old or generic). With RAG, when you ask a question, the system first **searches** your specific contract for the relevant paragraphs, **retrieves** them, and then **gives** them to the AI to summarize.
|
||||
|
||||
### Why use it in BFSI?
|
||||
* **Zero Hallucination**: The AI is forbidden from "guessing." If the answer isn't in your contract, it says "I don't know."
|
||||
* **Contextual Accuracy**: It understands the difference between a "Home Loan" in 2010 vs. a "Car Insurance" in 2024 because it only looks at the specific context of your file.
|
||||
|
||||
---
|
||||
|
||||
## 6. Deep Dive: Blockchain & Trust
|
||||
### The Digital Notary
|
||||
In the BFSI world, dates and integrity are everything. If a claim is denied because of a "deadline," the user needs proof that they held the document on time.
|
||||
|
||||
### How it works technically:
|
||||
1. **Hashing**: We turn your PDF into a 64-character string called a "Hash." Even changing a single comma in the PDF would result in a completely different hash.
|
||||
2. **Immutability**: Once this hash is written into our **Solidity Smart Contract**, it can never be deleted or changed by anyone—not even the platform administrators.
|
||||
3. **Verification**: At any time, a user can "Verify" their document. The system re-hashes the file and compares it to the blockchain. If they match, the document is **Genuine**.
|
||||
|
||||
---
|
||||
|
||||
## 7. The Technology Stack (Summary)
|
||||
|
||||
* **Frontend**: Next.js (React), Tailwind CSS, Lucide Icons, Framer Motion.
|
||||
* **Backend**: TypeScript, Prisma ORM, Server Actions.
|
||||
* **Database**: PostgreSQL (Neon) for metadata, Vector Storage for AI.
|
||||
* **AI**: Google Gemini (Large Language Model), Mistral AI (Fallback with Pixtral Vision).
|
||||
* **Blockchain**: Solidity (Smart Contracts), Hardhat (Local Node), Ethers.js (Integration).
|
||||
* **Storage**: UploadThing (Secure File Hosting).
|
||||
|
||||
---
|
||||
|
||||
## 8. Conclusion
|
||||
LexiChain is not just a document viewer; it is a **Decision Support System**. By combining the analytical power of AI with the structural trust of Blockchain, it bridges the gap between complex legal documents and clear, verifiable human understanding.
|
||||
Reference in New Issue
Block a user