modules Add detailed README documentation for 15+ bot templates including: - Platform analytics, BI reporting, and web crawler templates - CRM, contacts, and marketing automation templates - Legal document processing and office productivity templates - LLM tools, LLM server, and API client integration templates - Reminder management and meta-template for creating new templates Add new Rust configuration modules: - BM25 config for Tantivy-based sparse
316 lines
No EOL
9.1 KiB
Markdown
316 lines
No EOL
9.1 KiB
Markdown
# Legal Document Processing Template (law.gbai)
|
|
|
|
A General Bots template for legal case management, document analysis, and AI-powered legal Q&A.
|
|
|
|
## Overview
|
|
|
|
The Law template enables legal professionals to load case documents, query case information using natural language, and get AI-assisted analysis of legal materials. It's designed for law firms, legal departments, and compliance teams who need efficient document-based legal research.
|
|
|
|
## Features
|
|
|
|
- **Case Document Loading** - Load and index PDF case files by case number
|
|
- **Document Q&A** - Ask questions about loaded legal documents
|
|
- **Context-Aware Responses** - AI responses grounded in actual case content
|
|
- **Case Summarization** - Generate summaries of case documents
|
|
- **Multi-Document Support** - Work with multiple cases simultaneously
|
|
- **Audit Trail** - Track all document access and queries
|
|
|
|
## Package Structure
|
|
|
|
```
|
|
law.gbai/
|
|
├── README.md
|
|
├── law.gbdialog/
|
|
│ └── case.bas # Case loading and query handler
|
|
├── law.gbdrive/ # Case document storage
|
|
│ └── (case-*.pdf) # Case PDF files
|
|
├── law.gbkb/ # Knowledge base for legal reference
|
|
└── law.gbot/
|
|
└── config.csv # Bot configuration
|
|
```
|
|
|
|
## Scripts
|
|
|
|
| File | Description |
|
|
|------|-------------|
|
|
| `case.bas` | Loads case documents by number and enables document-based Q&A |
|
|
|
|
## How It Works
|
|
|
|
### Case Loading Flow
|
|
|
|
1. User provides a case number (e.g., "12345")
|
|
2. Bot searches for `case-12345.pdf` in the drive
|
|
3. Document content is extracted and set as context
|
|
4. Answer mode switches to "document" for grounded responses
|
|
5. User can ask questions about the loaded case
|
|
|
|
### Code Example
|
|
|
|
```basic
|
|
PARAM cod AS STRING LIKE "12345" DESCRIPTION "Case number to load and query"
|
|
|
|
DESCRIPTION "Load a legal case document by case number for Q&A and analysis"
|
|
|
|
text = GET "case-" + cod + ".pdf"
|
|
|
|
IF text THEN
|
|
SET CONTEXT "Based on this document, answer the person's questions:\n\n" + text
|
|
SET ANSWER MODE "document"
|
|
TALK "Case ${cod} loaded. Ask me anything about the case or request a summary."
|
|
ELSE
|
|
TALK "Case not found. Please check the case number."
|
|
END IF
|
|
```
|
|
|
|
## Configuration
|
|
|
|
Configure in `law.gbot/config.csv`:
|
|
|
|
| Parameter | Description | Example |
|
|
|-----------|-------------|---------|
|
|
| `Answer Mode` | Response grounding mode | `document` |
|
|
| `Theme Color` | UI accent color | `navy` |
|
|
| `LLM Provider` | AI provider | `openai` |
|
|
| `Document Retention` | Days to keep loaded docs | `30` |
|
|
| `Require Authentication` | Require user login | `true` |
|
|
|
|
## Usage
|
|
|
|
### Loading a Case
|
|
|
|
```
|
|
User: Load case 12345
|
|
Bot: Case 12345 loaded. Ask me anything about the case or request a summary.
|
|
```
|
|
|
|
### Querying Case Content
|
|
|
|
```
|
|
User: What are the main claims in this case?
|
|
Bot: Based on the document, the main claims are:
|
|
1. Breach of contract regarding the delivery terms in Section 3.2
|
|
2. Failure to meet quality standards as specified in Exhibit A
|
|
3. Request for damages in the amount of $250,000
|
|
|
|
User: Summarize the defendant's response
|
|
Bot: The defendant argues that:
|
|
- Delivery delays were caused by force majeure events
|
|
- Quality standards were met according to third-party inspection
|
|
- Damages claimed are excessive and not substantiated
|
|
```
|
|
|
|
### Multiple Cases
|
|
|
|
```
|
|
User: Load case 67890
|
|
Bot: Case 67890 loaded. Previous case context cleared.
|
|
|
|
User: Compare this with case 12345
|
|
Bot: I can only analyze the currently loaded case (67890).
|
|
To compare cases, please use the case comparison feature.
|
|
```
|
|
|
|
## Document Naming Convention
|
|
|
|
Case documents should follow this naming pattern:
|
|
|
|
```
|
|
case-{case_number}.pdf
|
|
```
|
|
|
|
Examples:
|
|
- `case-12345.pdf`
|
|
- `case-2024-CV-0001.pdf`
|
|
- `case-APPEAL-789.pdf`
|
|
|
|
## Customization
|
|
|
|
### Adding Case Search
|
|
|
|
```basic
|
|
' search-cases.bas
|
|
PARAM query AS STRING DESCRIPTION "Search term for finding cases"
|
|
|
|
DESCRIPTION "Search for cases by party name, date, or keywords"
|
|
|
|
cases = FIND "case_index.csv", "content LIKE '%" + query + "%'"
|
|
|
|
IF UBOUND(cases) > 0 THEN
|
|
TALK "Found " + UBOUND(cases) + " matching cases:"
|
|
|
|
FOR EACH c IN cases
|
|
TALK "- Case " + c.case_number + ": " + c.title
|
|
NEXT
|
|
ELSE
|
|
TALK "No cases found matching: " + query
|
|
END IF
|
|
```
|
|
|
|
### Case Summarization
|
|
|
|
```basic
|
|
' summarize-case.bas
|
|
PARAM cod AS STRING DESCRIPTION "Case number to summarize"
|
|
|
|
DESCRIPTION "Generate an executive summary of a legal case"
|
|
|
|
text = GET "case-" + cod + ".pdf"
|
|
|
|
IF text THEN
|
|
summary = LLM "As a legal professional, provide an executive summary of this case including:
|
|
1. Parties involved
|
|
2. Key facts
|
|
3. Legal issues
|
|
4. Current status
|
|
5. Next steps
|
|
|
|
Document: " + text
|
|
|
|
TALK "## Case " + cod + " Summary\n\n" + summary
|
|
|
|
' Save summary for future reference
|
|
SAVE "case_summaries.csv", cod, summary, NOW()
|
|
ELSE
|
|
TALK "Case not found."
|
|
END IF
|
|
```
|
|
|
|
### Adding Document Types
|
|
|
|
Support additional legal document types:
|
|
|
|
```basic
|
|
' load-document.bas
|
|
PARAM doc_type AS STRING LIKE "contract" DESCRIPTION "Type: case, contract, brief, motion"
|
|
PARAM doc_id AS STRING DESCRIPTION "Document identifier"
|
|
|
|
DESCRIPTION "Load various legal document types"
|
|
|
|
filename = doc_type + "-" + doc_id + ".pdf"
|
|
text = GET filename
|
|
|
|
IF text THEN
|
|
SET CONTEXT "This is a legal " + doc_type + ". Answer questions based on its content:\n\n" + text
|
|
SET ANSWER MODE "document"
|
|
TALK "Loaded " + doc_type + " " + doc_id + ". Ready for questions."
|
|
ELSE
|
|
TALK "Document not found: " + filename
|
|
END IF
|
|
```
|
|
|
|
### Compliance Logging
|
|
|
|
```basic
|
|
' Add audit logging to case.bas
|
|
IF text THEN
|
|
' Log access for compliance
|
|
WITH audit_entry
|
|
timestamp = NOW()
|
|
user = GET SESSION "user_email"
|
|
case_number = cod
|
|
action = "document_access"
|
|
ip_address = GET SESSION "client_ip"
|
|
END WITH
|
|
|
|
SAVE "legal_audit_log.csv", audit_entry
|
|
|
|
SET CONTEXT "Based on this document..." + text
|
|
END IF
|
|
```
|
|
|
|
## Integration Examples
|
|
|
|
### With Calendar
|
|
|
|
```basic
|
|
' Schedule case deadlines
|
|
deadline = LLM "Extract the next deadline date from this case: " + text
|
|
|
|
IF deadline THEN
|
|
CREATE CALENDAR EVENT "Case " + cod + " Deadline", deadline
|
|
TALK "Deadline added to calendar: " + deadline
|
|
END IF
|
|
```
|
|
|
|
### With Email
|
|
|
|
```basic
|
|
' Email case summary to team
|
|
summary = LLM "Summarize the key points of this case in 3 paragraphs: " + text
|
|
|
|
SEND EMAIL "legal-team@firm.com", "Case " + cod + " Summary", summary
|
|
TALK "Summary sent to legal team."
|
|
```
|
|
|
|
### With Document Generation
|
|
|
|
```basic
|
|
' Generate response document
|
|
response = LLM "Draft a formal response letter addressing the claims in this case: " + text
|
|
|
|
CREATE DRAFT response, "Response to Case " + cod
|
|
TALK "Draft response created. Review in your documents."
|
|
```
|
|
|
|
## Security Considerations
|
|
|
|
1. **Access Control** - Implement role-based access for sensitive cases
|
|
2. **Audit Logging** - Log all document access for compliance
|
|
3. **Data Encryption** - Enable encryption for stored documents
|
|
4. **Session Timeout** - Configure appropriate session timeouts
|
|
5. **Authentication** - Require strong authentication for legal systems
|
|
6. **Data Retention** - Follow legal data retention requirements
|
|
|
|
## Best Practices
|
|
|
|
1. **Organize documents** - Use consistent naming conventions
|
|
2. **Index cases** - Maintain a searchable case index
|
|
3. **Regular backups** - Back up case documents frequently
|
|
4. **Version control** - Track document versions
|
|
5. **Clear context** - Clear previous case context before loading new cases
|
|
6. **Verify AI responses** - Always verify AI-generated legal content
|
|
|
|
## Troubleshooting
|
|
|
|
| Issue | Cause | Solution |
|
|
|-------|-------|----------|
|
|
| Case not found | Wrong filename | Check naming convention |
|
|
| Empty responses | Document not parsed | Verify PDF is text-based |
|
|
| Slow loading | Large document | Consider document chunking |
|
|
| Context errors | Multiple cases loaded | Clear context between cases |
|
|
| Access denied | Missing permissions | Check user authentication |
|
|
|
|
## Limitations
|
|
|
|
- PDF documents must be text-based (not scanned images)
|
|
- Very large documents may require chunking
|
|
- Complex legal analysis should be verified by professionals
|
|
- AI responses are assistive, not legal advice
|
|
|
|
## Related Templates
|
|
|
|
- `compliance/privacy.gbai` - Privacy and data protection
|
|
- `compliance/hipaa-medical.gbai` - Healthcare compliance
|
|
- `talk-to-data.gbai` - Natural language document queries
|
|
- `ai-search.gbai` - AI-powered document search
|
|
|
|
## Use Cases
|
|
|
|
- **Case Research** - Quickly find relevant information in case files
|
|
- **Document Review** - AI-assisted document analysis
|
|
- **Client Communication** - Generate case status summaries
|
|
- **Deadline Tracking** - Extract and track important dates
|
|
- **Knowledge Management** - Build searchable legal knowledge bases
|
|
|
|
## Disclaimer
|
|
|
|
This template provides AI-assisted document analysis tools. It does not constitute legal advice. All AI-generated content should be reviewed by qualified legal professionals. Users are responsible for ensuring compliance with applicable legal and ethical standards.
|
|
|
|
## License
|
|
|
|
AGPL-3.0 - Part of General Bots Open Source Platform.
|
|
|
|
---
|
|
|
|
**Pragmatismo** - General Bots |