botserver/templates/law.gbai
Rodrigo Rodriguez (Pragmatismo) 7a5e369402 Add comprehensive documentation for GB templates and configuration
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
2025-12-03 16:05:50 -03:00
..
law.gbdialog ``` Add KB Statistics keywords and infrastructure documentation 2025-11-30 16:25:51 -03:00
law.gbdrive - New keywords. 2025-11-21 10:44:29 -03:00
law.gbkb - New templates. 2025-12-03 07:15:54 -03:00
law.gbot - New keywords. 2025-11-21 10:44:29 -03:00
README.md Add comprehensive documentation for GB templates and configuration 2025-12-03 16:05:50 -03:00

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

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

' 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

' 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:

' 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

' 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

' 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

' 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

' 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
  • 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