From b0ec64b883fc0f08f523725a46c840ed9cebfaf0 Mon Sep 17 00:00:00 2001 From: boladeE Date: Mon, 21 Apr 2025 22:49:29 +0100 Subject: [PATCH] feat: Initial SCP project setup with AI-powered document compliance tools --- .gitignore | 8 + README.md | 64 ++ app.log | 695 ++++++++++++++++++ data/1.Invitation to Tender.docx | Bin 0 -> 13880 bytes data/2.Tender Specifications.docx | Bin 0 -> 17510 bytes data/3.Bill of Quantities.docx | Bin 0 -> 13346 bytes data/4.Scope of Work.docx | Bin 0 -> 15493 bytes ....Supplier SQualification requirements.docx | Bin 0 -> 15335 bytes data/8.form of tender.docx | Bin 0 -> 16555 bytes data/9.confidentiality agreement.docx | Bin 0 -> 15059 bytes ...-LST-0001_Rev002 - Equipment List (1).docx | Bin 0 -> 224837 bytes requirements.txt | 8 + src/main.py | 247 +++++++ src/reset_pinecone_index.py | 42 ++ src/scripts/migrate_to_sqlite.py | 49 ++ src/services/__init__.py | 0 src/services/config.py | 24 + src/services/database.py | 162 ++++ src/services/document_processor.py | 248 +++++++ src/services/embedding_service.py | 57 ++ src/services/vector_store.py | 139 ++++ src/static/css/markdown.css | 104 +++ src/static/css/style.css | 62 ++ src/static/js/main.js | 79 ++ src/templates/analysis.html | 135 ++++ src/templates/base.html | 52 ++ src/templates/documents.html | 131 ++++ src/templates/index.html | 99 +++ 28 files changed, 2405 insertions(+) create mode 100644 .gitignore create mode 100644 README.md create mode 100644 app.log create mode 100644 data/1.Invitation to Tender.docx create mode 100644 data/2.Tender Specifications.docx create mode 100644 data/3.Bill of Quantities.docx create mode 100644 data/4.Scope of Work.docx create mode 100644 data/7.Supplier SQualification requirements.docx create mode 100644 data/8.form of tender.docx create mode 100644 data/9.confidentiality agreement.docx create mode 100644 data/Project1-FEED CONTRACTOR-MUL-E000-PR-LST-0001_Rev002 - Equipment List (1).docx create mode 100644 requirements.txt create mode 100644 src/main.py create mode 100644 src/reset_pinecone_index.py create mode 100644 src/scripts/migrate_to_sqlite.py create mode 100644 src/services/__init__.py create mode 100644 src/services/config.py create mode 100644 src/services/database.py create mode 100644 src/services/document_processor.py create mode 100644 src/services/embedding_service.py create mode 100644 src/services/vector_store.py create mode 100644 src/static/css/markdown.css create mode 100644 src/static/css/style.css create mode 100644 src/static/js/main.js create mode 100644 src/templates/analysis.html create mode 100644 src/templates/base.html create mode 100644 src/templates/documents.html create mode 100644 src/templates/index.html diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..791e832 --- /dev/null +++ b/.gitignore @@ -0,0 +1,8 @@ +.venv + +.env + +__pycache__/ + +data/uploads/ +data/app.db diff --git a/README.md b/README.md new file mode 100644 index 0000000..a3094cc --- /dev/null +++ b/README.md @@ -0,0 +1,64 @@ +# Mini SpecsComply Pro (SCP) + +## Overview + +Mini SpecsComply Pro (SCP) is a lightweight document compliance and validation tool designed to analyze and verify technical documents against predefined standards and project-specific requirements. It leverages advanced AI models for embedding, reasoning, and ranking to ensure fast and accurate document processing. + +## Key Features + +- **Document Embedding:** Uses Cohere Embedding Model to generate vector representations for efficient comparison. +- **Fast LLM Processing:** GROQ LLM provides rapid document parsing and analysis. +- **Advanced Reasoning:** Claude 3.5 Sonnet is used for deep reasoning and compliance verification. +- **Enhanced Ranking:** Cohere Reranker ensures the most relevant compliance issues are prioritized. +- **Structured Compliance Feedback:** Generates summaries and detailed issue breakdowns for document corrections. +- **Efficient Resubmission Workflow:** Allows users to revise and resubmit documents based on feedback. + +## Tech Stack + +- **Backend:** Python (FastAPI or Flask for API development) +- **Vector Database:** Pinecone or Weaviate for document embeddings storage and retrieval +- **LLMs:** + + - GROQ for quick responses + - Claude 3.5 Sonnet for reasoning +- **Embedding & Reranking:** + + - Cohere Embedding Model + - Cohere Reranker + +## Workflow + +1. **Document Upload** + + - User uploads a document for compliance verification. + - Document is converted into embeddings using the Cohere Embedding Model. + - Stored in the vector database for efficient retrieval. +2. **Processing & Analysis** + + - GROQ LLM parses the document and extracts key sections. + - Claude 3.5 Sonnet performs reasoning to check compliance against standards. + - Cohere Reranker prioritizes the most critical compliance issues. +3. **Compliance Report Generation** + + - A structured report is generated, including: + - **Summary of Findings** + - **Detailed Compliance Issues** + - **Recommended Fixes** +4. **Feedback & Resubmission** + + - User receives feedback and revises the document. + - Resubmitted documents undergo the same pipeline for re-evaluation. + +## API Endpoints (Example) + +```yaml +POST /upload-document + - Uploads a document for analysis + - Returns document ID for tracking + +GET /document/{doc_id}/analysis + - Retrieves the compliance report for a document + +POST /document/{doc_id}/resubmit + - Allows resubmission of a revised document +``` diff --git a/app.log b/app.log new file mode 100644 index 0000000..bcfef8c --- /dev/null +++ b/app.log @@ -0,0 +1,695 @@ +2025-04-21 20:33:27,700 - root - INFO - Processing upload for document ID: 78afc395-9b7c-4388-8d8b-aa1d02fbf75f +2025-04-21 20:33:27,705 - root - INFO - File saved to data/uploads/78afc395-9b7c-4388-8d8b-aa1d02fbf75f_2.Tender Specifications.docx +2025-04-21 20:33:27,722 - root - INFO - Processing document 78afc395-9b7c-4388-8d8b-aa1d02fbf75f with content length: 17509 +2025-04-21 20:33:28,023 - httpx - INFO - HTTP Request: POST https://api.cohere.com/v1/embed "HTTP/1.1 200 OK" +2025-04-21 20:33:28,939 - root - INFO - Stored embedding for document 78afc395-9b7c-4388-8d8b-aa1d02fbf75f +2025-04-21 20:34:54,473 - httpx - INFO - HTTP Request: POST https://api.cohere.com/v1/rerank "HTTP/1.1 200 OK" +2025-04-21 20:36:26,368 - root - INFO - Document 78afc395-9b7c-4388-8d8b-aa1d02fbf75f processed successfully +2025-04-21 20:36:26,384 - root - INFO - Document 78afc395-9b7c-4388-8d8b-aa1d02fbf75f processed successfully +2025-04-21 21:10:13,818 - root - INFO - Processing upload for document ID: 1130b5e6-c350-40f9-94c2-9ad43d6fa4a4 +2025-04-21 21:10:13,818 - root - INFO - File saved to data/uploads/1130b5e6-c350-40f9-94c2-9ad43d6fa4a4_1.Invitation to Tender.docx +2025-04-21 21:10:13,834 - root - INFO - Processing document 1130b5e6-c350-40f9-94c2-9ad43d6fa4a4 with content length: 13880 +2025-04-21 21:10:14,176 - httpx - INFO - HTTP Request: POST https://api.cohere.com/v1/embed "HTTP/1.1 200 OK" +2025-04-21 21:10:14,994 - root - INFO - Stored embedding for document 1130b5e6-c350-40f9-94c2-9ad43d6fa4a4 +2025-04-21 21:11:14,319 - httpx - INFO - HTTP Request: POST https://api.cohere.com/v1/rerank "HTTP/1.1 200 OK" +2025-04-21 21:11:14,326 - root - ERROR - Error processing document 1130b5e6-c350-40f9-94c2-9ad43d6fa4a4: 'NoneType' object has no attribute 'lower' +2025-04-21 21:11:14,326 - root - ERROR - Error processing document: 'NoneType' object has no attribute 'lower' +2025-04-21 21:11:14,326 - root - ERROR - Traceback (most recent call last): + File "c:\Users\babaw\Documents\Work\Mana Knight Digital\ds_task_scp\src\main.py", line 112, in upload_document + await document_processor.process_document(doc_id, file_path, document_type) + File "c:\Users\babaw\Documents\Work\Mana Knight Digital\ds_task_scp\src\services\document_processor.py", line 147, in process_document + "issues": self._format_issues(reranked_issues), + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "c:\Users\babaw\Documents\Work\Mana Knight Digital\ds_task_scp\src\services\document_processor.py", line 227, in _format_issues + if any(word in issue_text.lower() for word in ['critical', 'severe', 'major', 'high risk']): + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "c:\Users\babaw\Documents\Work\Mana Knight Digital\ds_task_scp\src\services\document_processor.py", line 227, in + if any(word in issue_text.lower() for word in ['critical', 'severe', 'major', 'high risk']): + ^^^^^^^^^^^^^^^^ +AttributeError: 'NoneType' object has no attribute 'lower' + +2025-04-21 21:22:01,931 - root - INFO - Processing upload for document ID: aecbb62c-b7ed-4c2e-beff-fe5e292de9f1 +2025-04-21 21:22:01,940 - root - INFO - File saved to data/uploads/aecbb62c-b7ed-4c2e-beff-fe5e292de9f1_4.Scope of Work.docx +2025-04-21 21:22:01,994 - root - INFO - Processing document aecbb62c-b7ed-4c2e-beff-fe5e292de9f1 with content length: 15493 +2025-04-21 21:22:02,392 - httpx - INFO - HTTP Request: POST https://api.cohere.com/v1/embed "HTTP/1.1 200 OK" +2025-04-21 21:22:03,409 - root - INFO - Stored embedding for document aecbb62c-b7ed-4c2e-beff-fe5e292de9f1 +2025-04-21 21:22:56,055 - httpx - INFO - HTTP Request: POST https://api.cohere.com/v1/rerank "HTTP/1.1 200 OK" +2025-04-21 21:24:51,709 - root - INFO - Document aecbb62c-b7ed-4c2e-beff-fe5e292de9f1 processed successfully +2025-04-21 21:24:51,717 - root - INFO - Document aecbb62c-b7ed-4c2e-beff-fe5e292de9f1 processed successfully +2025-04-21 21:34:15,975 - root - INFO - Processing upload for document ID: a444141c-e0c0-4ee9-a448-4555494aaede +2025-04-21 21:34:16,015 - root - INFO - File saved to data/uploads/a444141c-e0c0-4ee9-a448-4555494aaede_3.Bill of Quantities.docx +2025-04-21 21:34:16,058 - root - INFO - Processing document a444141c-e0c0-4ee9-a448-4555494aaede with content length: 13346 +2025-04-21 21:34:16,557 - httpx - INFO - HTTP Request: POST https://api.cohere.com/v1/embed "HTTP/1.1 200 OK" +2025-04-21 21:34:18,925 - root - INFO - Stored embedding for document a444141c-e0c0-4ee9-a448-4555494aaede +2025-04-21 21:35:43,925 - httpx - INFO - HTTP Request: POST https://api.cohere.com/v1/rerank "HTTP/1.1 200 OK" +2025-04-21 21:36:09,310 - root - INFO - Document a444141c-e0c0-4ee9-a448-4555494aaede processed successfully +2025-04-21 21:36:09,328 - root - INFO - Document a444141c-e0c0-4ee9-a448-4555494aaede processed successfully +2025-04-21 21:38:22,988 - root - ERROR - Error retrieving analysis: list object has no element 1 +2025-04-21 21:38:23,032 - root - ERROR - Traceback (most recent call last): + File "c:\Users\babaw\Documents\Work\Mana Knight Digital\ds_task_scp\src\main.py", line 139, in get_analysis + return templates.TemplateResponse( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "C:\Users\babaw\Documents\Work\Mana Knight Digital\ds_task_scp\.venv\Lib\site-packages\starlette\templating.py", line 209, in TemplateResponse + return _TemplateResponse( + ^^^^^^^^^^^^^^^^^^ + File "C:\Users\babaw\Documents\Work\Mana Knight Digital\ds_task_scp\.venv\Lib\site-packages\starlette\templating.py", line 40, in __init__ + content = template.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^ + File "C:\Users\babaw\Documents\Work\Mana Knight Digital\ds_task_scp\.venv\Lib\site-packages\jinja2\environment.py", line 1295, in render + self.environment.handle_exception() + File "C:\Users\babaw\Documents\Work\Mana Knight Digital\ds_task_scp\.venv\Lib\site-packages\jinja2\environment.py", line 942, in handle_exception + raise rewrite_traceback_stack(source=source) + File "src\templates\analysis.html", line 1, in top-level template code + {% extends "base.html" %} + File "src\templates\base.html", line 34, in top-level template code + {% block content %}{% endblock %} + ^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src\templates\analysis.html", line 50, in block 'content' + {{ analysis.recommendations[loop.index0]|markdown|safe }} + ^^^^^^^^^^^^^^^^^^^^^^^^^ + File "c:\Users\babaw\Documents\Work\Mana Knight Digital\ds_task_scp\src\main.py", line 44, in markdown_filter + return markdown.markdown(text, extensions=['extra', 'nl2br']) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "C:\Users\babaw\Documents\Work\Mana Knight Digital\ds_task_scp\.venv\Lib\site-packages\markdown\core.py", line 482, in markdown + return md.convert(text) + ^^^^^^^^^^^^^^^^ + File "C:\Users\babaw\Documents\Work\Mana Knight Digital\ds_task_scp\.venv\Lib\site-packages\markdown\core.py", line 341, in convert + if not source.strip(): + ^^^^^^^^^^^^ +jinja2.exceptions.UndefinedError: list object has no element 1 + +2025-04-21 21:40:33,659 - root - INFO - Processing upload for document ID: befee86e-cc92-43cf-b935-3c8ec78ef275 +2025-04-21 21:40:33,663 - root - INFO - File saved to data/uploads/befee86e-cc92-43cf-b935-3c8ec78ef275_4.Scope of Work.docx +2025-04-21 21:40:33,694 - root - INFO - Processing document befee86e-cc92-43cf-b935-3c8ec78ef275 with content length: 15493 +2025-04-21 21:40:34,174 - httpx - INFO - HTTP Request: POST https://api.cohere.com/v1/embed "HTTP/1.1 200 OK" +2025-04-21 21:40:35,491 - root - INFO - Stored embedding for document befee86e-cc92-43cf-b935-3c8ec78ef275 +2025-04-21 21:41:47,586 - httpx - INFO - HTTP Request: POST https://api.cohere.com/v1/rerank "HTTP/1.1 200 OK" +2025-04-21 21:42:22,869 - root - INFO - Document befee86e-cc92-43cf-b935-3c8ec78ef275 processed successfully +2025-04-21 21:42:22,887 - root - INFO - Document befee86e-cc92-43cf-b935-3c8ec78ef275 processed successfully +2025-04-21 21:53:13,705 - root - INFO - Processing upload for document ID: 3f10b972-3eb6-43c9-bfeb-777d0a33c4a3 +2025-04-21 21:53:13,713 - root - INFO - File saved to data/uploads/3f10b972-3eb6-43c9-bfeb-777d0a33c4a3_8.form of tender.docx +2025-04-21 21:53:13,755 - root - INFO - Processing document 3f10b972-3eb6-43c9-bfeb-777d0a33c4a3 with content length: 16555 +2025-04-21 21:53:16,168 - httpx - INFO - HTTP Request: POST https://api.cohere.com/v1/embed "HTTP/1.1 200 OK" +2025-04-21 21:53:18,290 - root - INFO - Stored embedding for document 3f10b972-3eb6-43c9-bfeb-777d0a33c4a3 +2025-04-21 21:54:26,818 - httpx - INFO - HTTP Request: POST https://api.cohere.com/v1/rerank "HTTP/1.1 200 OK" +2025-04-21 21:55:06,268 - root - INFO - Document 3f10b972-3eb6-43c9-bfeb-777d0a33c4a3 processed successfully +2025-04-21 21:55:06,268 - root - INFO - Document 3f10b972-3eb6-43c9-bfeb-777d0a33c4a3 processed successfully +2025-04-21 22:11:40,110 - root - INFO - Processing upload for document ID: 2de0becf-fcfc-4793-aad0-7369180c6980 +2025-04-21 22:11:40,113 - root - INFO - File saved to data/uploads/2de0becf-fcfc-4793-aad0-7369180c6980_3.Bill of Quantities.docx +2025-04-21 22:11:40,158 - root - INFO - Processing document 2de0becf-fcfc-4793-aad0-7369180c6980 with content length: 13346 +2025-04-21 22:11:40,648 - httpx - INFO - HTTP Request: POST https://api.cohere.com/v1/embed "HTTP/1.1 200 OK" +2025-04-21 22:11:41,772 - root - INFO - Stored embedding for document 2de0becf-fcfc-4793-aad0-7369180c6980 +2025-04-21 22:12:35,639 - httpx - INFO - HTTP Request: POST https://api.cohere.com/v1/rerank "HTTP/1.1 200 OK" +2025-04-21 22:13:08,662 - root - INFO - Document 2de0becf-fcfc-4793-aad0-7369180c6980 processed successfully +2025-04-21 22:13:08,672 - root - INFO - Document 2de0becf-fcfc-4793-aad0-7369180c6980 processed successfully +2025-04-21 22:15:10,060 - root - INFO - Processing upload for document ID: d6c97c26-b59b-4854-bf6d-6f7f58f3dc11 +2025-04-21 22:15:10,060 - root - INFO - File saved to data/uploads/d6c97c26-b59b-4854-bf6d-6f7f58f3dc11_4.Scope of Work.docx +2025-04-21 22:15:10,140 - root - INFO - Processing document d6c97c26-b59b-4854-bf6d-6f7f58f3dc11 with content length: 15493 +2025-04-21 22:15:10,472 - httpx - INFO - HTTP Request: POST https://api.cohere.com/v1/embed "HTTP/1.1 200 OK" +2025-04-21 22:15:11,322 - root - INFO - Stored embedding for document d6c97c26-b59b-4854-bf6d-6f7f58f3dc11 +2025-04-21 22:16:10,272 - httpx - INFO - HTTP Request: POST https://api.cohere.com/v1/rerank "HTTP/1.1 200 OK" +2025-04-21 22:16:43,822 - root - INFO - Analysis for document d6c97c26-b59b-4854-bf6d-6f7f58f3dc11: { + "document_id": "d6c97c26-b59b-4854-bf6d-6f7f58f3dc11", + "summary": "Here are the key sections and requirements extracted from the document:\n\n### 1. **Content Types**\n - Defines the types of content within the document (e.g., XML files, relationships, themes).\n\n### 2. **Relationships**\n - Specifies the relationships between different parts of the document, such as how document parts are connected.\n\n### 3. **Document Content**\n - Contains the main content of the document, including text and formatting.\n\n### 4. **Document Relationships**\n - Defines the relationships specific to the main document part.\n\n### 5. **Theme**\n - Contains theme-related settings for the document, including color schemes and fonts.\n\n### 6. **Settings**\n - Includes document settings such as proofing options, compatibility settings, and other Word-specific configurations.\n\n### 7. **Numbering**\n - Defines numbering formats and styles used in the document.\n\n### 8. **Styles**\n - Specifies the styles applied throughout the document, including paragraph and character styles.\n\n### 9. **Web Settings**\n - Contains settings related to how the document is displayed in a web browser.\n\n### 10. **Font Table**\n - Lists the fonts used in the document and their properties.\n\n### 11. **Core Properties**\n - Includes metadata about the document, such as title, author, and creation date.\n\n### 12. **Application Properties**\n - Contains properties specific to the application (e.g., Microsoft Word) used to create the document.\n\n### Key Requirements:\n- The document must adhere to the defined content types and relationships.\n- Proper formatting and styling must be applied as specified in the styles and numbering sections.\n- Theme settings must be consistent throughout the document.\n- Metadata (core and application properties) must be accurately filled out.\n- Web settings should ensure proper display if the document is viewed online.\n\nThis summary provides an overview of the document's structure and key components, which are essential for maintaining consistency and functionality in the Word document.", + "issues": [ + { + "issue": null, + "severity": "high", + "rank": 1 + }, + { + "issue": null, + "severity": "high", + "rank": 2 + }, + { + "issue": null, + "severity": "high", + "rank": 3 + }, + { + "issue": null, + "severity": "medium", + "rank": 4 + }, + { + "issue": null, + "severity": "medium", + "rank": 5 + }, + { + "issue": null, + "severity": "medium", + "rank": 6 + }, + { + "issue": null, + "severity": "low", + "rank": 7 + }, + { + "issue": null, + "severity": "low", + "rank": 8 + }, + { + "issue": null, + "severity": "low", + "rank": 9 + }, + { + "issue": null, + "severity": "low", + "rank": 10 + }, + { + "issue": null, + "severity": "low", + "rank": 11 + }, + { + "issue": null, + "severity": "low", + "rank": 12 + }, + { + "issue": null, + "severity": "low", + "rank": 13 + }, + { + "issue": null, + "severity": "low", + "rank": 14 + }, + { + "issue": null, + "severity": "low", + "rank": 15 + }, + { + "issue": null, + "severity": "low", + "rank": 16 + }, + { + "issue": null, + "severity": "low", + "rank": 17 + }, + { + "issue": null, + "severity": "low", + "rank": 18 + }, + { + "issue": null, + "severity": "low", + "rank": 19 + }, + { + "issue": null, + "severity": "low", + "rank": 20 + }, + { + "issue": null, + "severity": "low", + "rank": 21 + }, + { + "issue": null, + "severity": "low", + "rank": 22 + }, + { + "issue": null, + "severity": "low", + "rank": 23 + }, + { + "issue": null, + "severity": "low", + "rank": 24 + }, + { + "issue": null, + "severity": "low", + "rank": 25 + }, + { + "issue": null, + "severity": "low", + "rank": 26 + }, + { + "issue": null, + "severity": "low", + "rank": 27 + }, + { + "issue": null, + "severity": "low", + "rank": 28 + }, + { + "issue": null, + "severity": "low", + "rank": 29 + }, + { + "issue": null, + "severity": "low", + "rank": 30 + }, + { + "issue": null, + "severity": "low", + "rank": 31 + }, + { + "issue": null, + "severity": "low", + "rank": 32 + }, + { + "issue": null, + "severity": "low", + "rank": 33 + }, + { + "issue": null, + "severity": "low", + "rank": 34 + }, + { + "issue": null, + "severity": "low", + "rank": 35 + }, + { + "issue": null, + "severity": "low", + "rank": 36 + }, + { + "issue": null, + "severity": "low", + "rank": 37 + }, + { + "issue": null, + "severity": "low", + "rank": 38 + }, + { + "issue": null, + "severity": "low", + "rank": 39 + }, + { + "issue": null, + "severity": "low", + "rank": 40 + }, + { + "issue": null, + "severity": "low", + "rank": 41 + }, + { + "issue": null, + "severity": "low", + "rank": 42 + }, + { + "issue": null, + "severity": "low", + "rank": 43 + }, + { + "issue": null, + "severity": "low", + "rank": 44 + }, + { + "issue": null, + "severity": "low", + "rank": 45 + }, + { + "issue": null, + "severity": "low", + "rank": 46 + }, + { + "issue": null, + "severity": "low", + "rank": 47 + }, + { + "issue": null, + "severity": "low", + "rank": 48 + }, + { + "issue": null, + "severity": "low", + "rank": 49 + }, + { + "issue": null, + "severity": "low", + "rank": 50 + } + ], + "recommendations": [ + "### **Comprehensive Compliance Recommendation for Document Issues** \n\n#### **1. Missing or Unidentified Documents (Indexes 0, 49, 1, 30, 25)** \n**Issue:** Several documents are either missing (`document=None`) or improperly indexed, leading to potential compliance risks. \n\n**Action Steps:** \n- **Conduct a Document Audit:** \n - Identify all missing documents (`index=0, 49, 1, 30, 25`) and verify if they were misplaced, incorrectly labeled, or never properly stored. \n - Cross-reference with a master document registry to confirm expected files. \n- **Implement a Document Tracking System:** \n - Use a **Document Management System (DMS)** with version control, metadata tagging, and audit trails. \n - Assign unique identifiers (e.g., `DOC-001`, `POL-2024-01`) to prevent indexing errors. \n- **Enforce Mandatory Metadata:** \n - Require fields such as: \n - Document title \n - Version number \n - Creation/modification dates \n - Author/owner \n - Compliance status (e.g., \"Reviewed,\" \"Pending Approval\") \n\n#### **2. Inconsistent Relevance Scores (Ranging from 0.23 to 0.98)** \n**Issue:** The relevance scores vary significantly, indicating potential inconsistencies in document classification, retrieval, or applicability. \n\n**Action Steps:** \n- **Standardize Relevance Scoring:** \n - Define clear criteria (e.g., regulatory impact, business criticality, frequency of use) to score documents objectively. \n - Use AI/ML tools (if available) to auto-tag relevance based on content analysis. \n- **Review Low-Scoring Documents (Indexes 25, 30):** \n - Determine if these documents are obsolete, redundant, or incorrectly tagged. \n - Archive or deprecate irrelevant files to reduce clutter. \n- **Flag High-Scoring Documents (Indexes 0, 49, 1):** \n - Prioritize review and updates for documents with high relevance to ensure compliance. \n\n#### **3. General Compliance Framework Enhancement** \nTo prevent recurrence, implement the following best practices: \n- **Automated Compliance Checks:** \n - Use compliance software (e.g., **OneTrust, LogicGate, Smarsh**) to flag missing/expired documents. \n- **Regular Training & Accountability:** \n - Train staff on proper document handling and compliance protocols. \n - Assign a **Compliance Officer** to oversee document integrity. \n- **Periodic Reassessment:** \n - Conduct quarterly audits to verify document accuracy, relevance, and accessibility. \n\n### **Final Recommendation Summary** \n1. **Locate & properly index missing documents.** \n2. **Adopt a DMS with strict metadata requirements.** \n3. **Standardize relevance scoring and purge obsolete files.** \n4. **Automate compliance monitoring and enforce accountability.** \n\nBy implementing these steps, the organization can resolve current compliance gaps and establish a robust, future-proof document management process. \n\nWould you like a tailored checklist for immediate execution?" + ] +} +2025-04-21 22:16:43,889 - root - INFO - Document d6c97c26-b59b-4854-bf6d-6f7f58f3dc11 processed successfully +2025-04-21 22:16:43,903 - root - INFO - Document d6c97c26-b59b-4854-bf6d-6f7f58f3dc11 processed successfully +2025-04-21 22:16:54,195 - root - INFO - Retrieved analysis for document d6c97c26-b59b-4854-bf6d-6f7f58f3dc11: { + "document_id": "d6c97c26-b59b-4854-bf6d-6f7f58f3dc11", + "summary": "Here are the key sections and requirements extracted from the document:\n\n### 1. **Content Types**\n - Defines the types of content within the document (e.g., XML files, relationships, themes).\n\n### 2. **Relationships**\n - Specifies the relationships between different parts of the document, such as how document parts are connected.\n\n### 3. **Document Content**\n - Contains the main content of the document, including text and formatting.\n\n### 4. **Document Relationships**\n - Defines the relationships specific to the main document part.\n\n### 5. **Theme**\n - Contains theme-related settings for the document, including color schemes and fonts.\n\n### 6. **Settings**\n - Includes document settings such as proofing options, compatibility settings, and other Word-specific configurations.\n\n### 7. **Numbering**\n - Defines numbering formats and styles used in the document.\n\n### 8. **Styles**\n - Specifies the styles applied throughout the document, including paragraph and character styles.\n\n### 9. **Web Settings**\n - Contains settings related to how the document is displayed in a web browser.\n\n### 10. **Font Table**\n - Lists the fonts used in the document and their properties.\n\n### 11. **Core Properties**\n - Includes metadata about the document, such as title, author, and creation date.\n\n### 12. **Application Properties**\n - Contains properties specific to the application (e.g., Microsoft Word) used to create the document.\n\n### Key Requirements:\n- The document must adhere to the defined content types and relationships.\n- Proper formatting and styling must be applied as specified in the styles and numbering sections.\n- Theme settings must be consistent throughout the document.\n- Metadata (core and application properties) must be accurately filled out.\n- Web settings should ensure proper display if the document is viewed online.\n\nThis summary provides an overview of the document's structure and key components, which are essential for maintaining consistency and functionality in the Word document.", + "issues": [ + { + "issue": null, + "severity": "high", + "rank": 1 + }, + { + "issue": null, + "severity": "high", + "rank": 2 + }, + { + "issue": null, + "severity": "high", + "rank": 3 + }, + { + "issue": null, + "severity": "medium", + "rank": 4 + }, + { + "issue": null, + "severity": "medium", + "rank": 5 + }, + { + "issue": null, + "severity": "medium", + "rank": 6 + }, + { + "issue": null, + "severity": "low", + "rank": 7 + }, + { + "issue": null, + "severity": "low", + "rank": 8 + }, + { + "issue": null, + "severity": "low", + "rank": 9 + }, + { + "issue": null, + "severity": "low", + "rank": 10 + }, + { + "issue": null, + "severity": "low", + "rank": 11 + }, + { + "issue": null, + "severity": "low", + "rank": 12 + }, + { + "issue": null, + "severity": "low", + "rank": 13 + }, + { + "issue": null, + "severity": "low", + "rank": 14 + }, + { + "issue": null, + "severity": "low", + "rank": 15 + }, + { + "issue": null, + "severity": "low", + "rank": 16 + }, + { + "issue": null, + "severity": "low", + "rank": 17 + }, + { + "issue": null, + "severity": "low", + "rank": 18 + }, + { + "issue": null, + "severity": "low", + "rank": 19 + }, + { + "issue": null, + "severity": "low", + "rank": 20 + }, + { + "issue": null, + "severity": "low", + "rank": 21 + }, + { + "issue": null, + "severity": "low", + "rank": 22 + }, + { + "issue": null, + "severity": "low", + "rank": 23 + }, + { + "issue": null, + "severity": "low", + "rank": 24 + }, + { + "issue": null, + "severity": "low", + "rank": 25 + }, + { + "issue": null, + "severity": "low", + "rank": 26 + }, + { + "issue": null, + "severity": "low", + "rank": 27 + }, + { + "issue": null, + "severity": "low", + "rank": 28 + }, + { + "issue": null, + "severity": "low", + "rank": 29 + }, + { + "issue": null, + "severity": "low", + "rank": 30 + }, + { + "issue": null, + "severity": "low", + "rank": 31 + }, + { + "issue": null, + "severity": "low", + "rank": 32 + }, + { + "issue": null, + "severity": "low", + "rank": 33 + }, + { + "issue": null, + "severity": "low", + "rank": 34 + }, + { + "issue": null, + "severity": "low", + "rank": 35 + }, + { + "issue": null, + "severity": "low", + "rank": 36 + }, + { + "issue": null, + "severity": "low", + "rank": 37 + }, + { + "issue": null, + "severity": "low", + "rank": 38 + }, + { + "issue": null, + "severity": "low", + "rank": 39 + }, + { + "issue": null, + "severity": "low", + "rank": 40 + }, + { + "issue": null, + "severity": "low", + "rank": 41 + }, + { + "issue": null, + "severity": "low", + "rank": 42 + }, + { + "issue": null, + "severity": "low", + "rank": 43 + }, + { + "issue": null, + "severity": "low", + "rank": 44 + }, + { + "issue": null, + "severity": "low", + "rank": 45 + }, + { + "issue": null, + "severity": "low", + "rank": 46 + }, + { + "issue": null, + "severity": "low", + "rank": 47 + }, + { + "issue": null, + "severity": "low", + "rank": 48 + }, + { + "issue": null, + "severity": "low", + "rank": 49 + }, + { + "issue": null, + "severity": "low", + "rank": 50 + } + ], + "recommendations": [ + "### **Comprehensive Compliance Recommendation for Document Issues** \n\n#### **1. Missing or Unidentified Documents (Indexes 0, 49, 1, 30, 25)** \n**Issue:** Several documents are either missing (`document=None`) or improperly indexed, leading to potential compliance risks. \n\n**Action Steps:** \n- **Conduct a Document Audit:** \n - Identify all missing documents (`index=0, 49, 1, 30, 25`) and verify if they were misplaced, incorrectly labeled, or never properly stored. \n - Cross-reference with a master document registry to confirm expected files. \n- **Implement a Document Tracking System:** \n - Use a **Document Management System (DMS)** with version control, metadata tagging, and audit trails. \n - Assign unique identifiers (e.g., `DOC-001`, `POL-2024-01`) to prevent indexing errors. \n- **Enforce Mandatory Metadata:** \n - Require fields such as: \n - Document title \n - Version number \n - Creation/modification dates \n - Author/owner \n - Compliance status (e.g., \"Reviewed,\" \"Pending Approval\") \n\n#### **2. Inconsistent Relevance Scores (Ranging from 0.23 to 0.98)** \n**Issue:** The relevance scores vary significantly, indicating potential inconsistencies in document classification, retrieval, or applicability. \n\n**Action Steps:** \n- **Standardize Relevance Scoring:** \n - Define clear criteria (e.g., regulatory impact, business criticality, frequency of use) to score documents objectively. \n - Use AI/ML tools (if available) to auto-tag relevance based on content analysis. \n- **Review Low-Scoring Documents (Indexes 25, 30):** \n - Determine if these documents are obsolete, redundant, or incorrectly tagged. \n - Archive or deprecate irrelevant files to reduce clutter. \n- **Flag High-Scoring Documents (Indexes 0, 49, 1):** \n - Prioritize review and updates for documents with high relevance to ensure compliance. \n\n#### **3. General Compliance Framework Enhancement** \nTo prevent recurrence, implement the following best practices: \n- **Automated Compliance Checks:** \n - Use compliance software (e.g., **OneTrust, LogicGate, Smarsh**) to flag missing/expired documents. \n- **Regular Training & Accountability:** \n - Train staff on proper document handling and compliance protocols. \n - Assign a **Compliance Officer** to oversee document integrity. \n- **Periodic Reassessment:** \n - Conduct quarterly audits to verify document accuracy, relevance, and accessibility. \n\n### **Final Recommendation Summary** \n1. **Locate & properly index missing documents.** \n2. **Adopt a DMS with strict metadata requirements.** \n3. **Standardize relevance scoring and purge obsolete files.** \n4. **Automate compliance monitoring and enforce accountability.** \n\nBy implementing these steps, the organization can resolve current compliance gaps and establish a robust, future-proof document management process. \n\nWould you like a tailored checklist for immediate execution?" + ] +} +2025-04-21 22:18:34,156 - root - ERROR - Error retrieving analysis: list object has no element 1 +2025-04-21 22:18:34,163 - root - ERROR - Traceback (most recent call last): + File "c:\Users\babaw\Documents\Work\Mana Knight Digital\ds_task_scp\src\main.py", line 138, in get_analysis + return templates.TemplateResponse( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "C:\Users\babaw\Documents\Work\Mana Knight Digital\ds_task_scp\.venv\Lib\site-packages\starlette\templating.py", line 209, in TemplateResponse + return _TemplateResponse( + ^^^^^^^^^^^^^^^^^^ + File "C:\Users\babaw\Documents\Work\Mana Knight Digital\ds_task_scp\.venv\Lib\site-packages\starlette\templating.py", line 40, in __init__ + content = template.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^ + File "C:\Users\babaw\Documents\Work\Mana Knight Digital\ds_task_scp\.venv\Lib\site-packages\jinja2\environment.py", line 1295, in render + self.environment.handle_exception() + File "C:\Users\babaw\Documents\Work\Mana Knight Digital\ds_task_scp\.venv\Lib\site-packages\jinja2\environment.py", line 942, in handle_exception + raise rewrite_traceback_stack(source=source) + File "src\templates\analysis.html", line 1, in top-level template code + {% extends "base.html" %} + File "src\templates\base.html", line 34, in top-level template code + {% block content %}{% endblock %} + ^^^^^^^^^^^^^^^^^^^^^^^^^ + File "src\templates\analysis.html", line 50, in block 'content' + {{ analysis.recommendations[loop.index0]|markdown|safe }} + ^^^^^^^^^^^^^^^^^^^^^^^^^ + File "c:\Users\babaw\Documents\Work\Mana Knight Digital\ds_task_scp\src\main.py", line 44, in markdown_filter + return markdown.markdown(text, extensions=['extra', 'nl2br']) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "C:\Users\babaw\Documents\Work\Mana Knight Digital\ds_task_scp\.venv\Lib\site-packages\markdown\core.py", line 482, in markdown + return md.convert(text) + ^^^^^^^^^^^^^^^^ + File "C:\Users\babaw\Documents\Work\Mana Knight Digital\ds_task_scp\.venv\Lib\site-packages\markdown\core.py", line 341, in convert + if not source.strip(): + ^^^^^^^^^^^^ +jinja2.exceptions.UndefinedError: list object has no element 1 + +2025-04-21 22:18:40,245 - root - INFO - Deleted uploaded file: data/uploads/d6c97c26-b59b-4854-bf6d-6f7f58f3dc11_4.Scope of Work.docx +2025-04-21 22:18:41,105 - root - INFO - Deleted document d6c97c26-b59b-4854-bf6d-6f7f58f3dc11 from index +2025-04-21 22:18:41,105 - root - INFO - Removed document d6c97c26-b59b-4854-bf6d-6f7f58f3dc11 from vector store +2025-04-21 22:18:49,878 - root - INFO - Deleted uploaded file: data/uploads/2de0becf-fcfc-4793-aad0-7369180c6980_3.Bill of Quantities.docx +2025-04-21 22:18:50,166 - root - INFO - Deleted document 2de0becf-fcfc-4793-aad0-7369180c6980 from index +2025-04-21 22:18:50,166 - root - INFO - Removed document 2de0becf-fcfc-4793-aad0-7369180c6980 from vector store +2025-04-21 22:18:54,080 - root - INFO - Deleted uploaded file: data/uploads/3f10b972-3eb6-43c9-bfeb-777d0a33c4a3_8.form of tender.docx +2025-04-21 22:18:54,321 - root - INFO - Deleted document 3f10b972-3eb6-43c9-bfeb-777d0a33c4a3 from index +2025-04-21 22:18:54,322 - root - INFO - Removed document 3f10b972-3eb6-43c9-bfeb-777d0a33c4a3 from vector store +2025-04-21 22:18:57,881 - root - INFO - Deleted uploaded file: data/uploads/befee86e-cc92-43cf-b935-3c8ec78ef275_4.Scope of Work.docx +2025-04-21 22:18:58,105 - root - INFO - Deleted document befee86e-cc92-43cf-b935-3c8ec78ef275 from index +2025-04-21 22:18:58,105 - root - INFO - Removed document befee86e-cc92-43cf-b935-3c8ec78ef275 from vector store +2025-04-21 22:19:02,930 - root - INFO - Deleted uploaded file: data/uploads/a444141c-e0c0-4ee9-a448-4555494aaede_3.Bill of Quantities.docx +2025-04-21 22:19:03,739 - root - INFO - Deleted document a444141c-e0c0-4ee9-a448-4555494aaede from index +2025-04-21 22:19:03,748 - root - INFO - Removed document a444141c-e0c0-4ee9-a448-4555494aaede from vector store +2025-04-21 22:19:18,005 - root - INFO - Processing upload for document ID: 77063b1d-633c-421e-9591-cde2eb90a979 +2025-04-21 22:19:18,008 - root - INFO - File saved to data/uploads/77063b1d-633c-421e-9591-cde2eb90a979_7.Supplier SQualification requirements.docx +2025-04-21 22:19:18,041 - root - INFO - Processing document 77063b1d-633c-421e-9591-cde2eb90a979 with content length: 15335 +2025-04-21 22:19:18,695 - httpx - INFO - HTTP Request: POST https://api.cohere.com/v1/embed "HTTP/1.1 200 OK" +2025-04-21 22:19:19,239 - root - INFO - Stored embedding for document 77063b1d-633c-421e-9591-cde2eb90a979 +2025-04-21 22:20:24,699 - httpx - INFO - HTTP Request: POST https://api.cohere.com/v1/rerank "HTTP/1.1 200 OK" +2025-04-21 22:22:05,759 - root - INFO - Document 77063b1d-633c-421e-9591-cde2eb90a979 processed successfully +2025-04-21 22:22:05,775 - root - INFO - Document 77063b1d-633c-421e-9591-cde2eb90a979 processed successfully +2025-04-21 22:31:21,934 - root - INFO - Processing upload for document ID: e79aeb90-799a-4d06-9efd-1d19315eebcc +2025-04-21 22:31:21,936 - root - INFO - File saved to data/uploads/e79aeb90-799a-4d06-9efd-1d19315eebcc_2.Tender Specifications.docx +2025-04-21 22:31:21,953 - root - INFO - Processing document e79aeb90-799a-4d06-9efd-1d19315eebcc with content length: 17509 +2025-04-21 22:32:04,265 - httpx - INFO - HTTP Request: POST https://api.cohere.com/v1/embed "HTTP/1.1 200 OK" +2025-04-21 22:32:05,457 - root - INFO - Stored embedding for document e79aeb90-799a-4d06-9efd-1d19315eebcc +2025-04-21 22:33:04,556 - httpx - INFO - HTTP Request: POST https://api.cohere.com/v1/rerank "HTTP/1.1 200 OK" +2025-04-21 22:34:43,603 - root - INFO - Document e79aeb90-799a-4d06-9efd-1d19315eebcc processed successfully +2025-04-21 22:34:43,611 - root - INFO - Document e79aeb90-799a-4d06-9efd-1d19315eebcc processed successfully diff --git a/data/1.Invitation to Tender.docx b/data/1.Invitation to Tender.docx new file mode 100644 index 0000000000000000000000000000000000000000..41346e8caeb080d99ca31b708787efb84f494e29 GIT binary patch literal 13880 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 literal 0 HcmV?d00001 diff --git a/data/3.Bill of Quantities.docx b/data/3.Bill of Quantities.docx new file mode 100644 index 0000000000000000000000000000000000000000..b34a5aab165e2ccf5631907cd8e886a1cf02eba1 GIT binary patch literal 13346 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 literal 0 HcmV?d00001 diff --git a/data/7.Supplier SQualification requirements.docx b/data/7.Supplier SQualification requirements.docx new file mode 100644 index 0000000000000000000000000000000000000000..7e65562df742ef03529ef72141ffa75c71f9981d GIT binary patch literal 15335 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 IfBW{o05p{&ZU6uP literal 0 HcmV?d00001 diff --git a/data/9.confidentiality agreement.docx b/data/9.confidentiality agreement.docx new file mode 100644 index 0000000000000000000000000000000000000000..42d49a6e81d598c115bc3a316cedf118a3834f6a GIT binary patch literal 15059 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 Tc>w^hZy%613vK-^`33wxpi}*{ literal 0 HcmV?d00001 diff --git a/data/Project1-FEED CONTRACTOR-MUL-E000-PR-LST-0001_Rev002 - Equipment List (1).docx b/data/Project1-FEED CONTRACTOR-MUL-E000-PR-LST-0001_Rev002 - Equipment List (1).docx new file mode 100644 index 0000000000000000000000000000000000000000..8ae002cfbf9050a310af355c15edff6cef862369 GIT binary patch literal 224837 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 U^TWLh3xE#(`~p%7aIXdUUmc!8mH+?% literal 0 HcmV?d00001 diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000..36ac719 --- /dev/null +++ b/requirements.txt @@ -0,0 +1,8 @@ +fastapi==0.109.2 +uvicorn==0.27.1 +python-multipart==0.0.9 +pinecone-client==3.0.2 +cohere==4.47 +groq==0.4.2 +python-dotenv==1.0.1 +pydantic==2.6.3 \ No newline at end of file diff --git a/src/main.py b/src/main.py new file mode 100644 index 0000000..a5c02f1 --- /dev/null +++ b/src/main.py @@ -0,0 +1,247 @@ +from fastapi import FastAPI, UploadFile, File, HTTPException, Form, Request +from fastapi.middleware.cors import CORSMiddleware +from fastapi.templating import Jinja2Templates +from fastapi.staticfiles import StaticFiles +from fastapi.responses import HTMLResponse, RedirectResponse +from pydantic import BaseModel +from typing import List, Optional +import uuid +import os +import logging +import traceback +import json +from datetime import datetime +import markdown + +from services.document_processor import DocumentProcessor +from services.vector_store import VectorStore +from services.database import Database + +from dotenv import load_dotenv + +# Configure logging +logging.basicConfig( + level=logging.INFO, + format='%(asctime)s - %(name)s - %(levelname)s - %(message)s', + handlers=[ + logging.FileHandler("app.log"), + logging.StreamHandler() + ] +) + +load_dotenv() + +app = FastAPI(title="Mini SpecsComply Pro") + +# Mount static files +app.mount("/static", StaticFiles(directory="src/static"), name="static") + +# Templates +templates = Jinja2Templates(directory="src/templates") + +# Add markdown filter to Jinja2 +def markdown_filter(text): + return markdown.markdown(text, extensions=['extra', 'nl2br']) + +templates.env.filters["markdown"] = markdown_filter + +# CORS middleware +app.add_middleware( + CORSMiddleware, + allow_origins=["*"], + allow_credentials=True, + allow_methods=["*"], + allow_headers=["*"], +) + +# Initialize services +vector_store = VectorStore() +document_processor = DocumentProcessor(vector_store) +database = Database() + +class AnalysisResponse(BaseModel): + document_id: str + summary: str + issues: List[dict] + recommendations: List[str] + +@app.get("/", response_class=HTMLResponse) +async def home(request: Request): + return templates.TemplateResponse("index.html", {"request": request}) + +@app.get("/documents", response_class=HTMLResponse) +async def documents(request: Request): + try: + # Get all documents from database + documents = database.get_all_metadata() + + return templates.TemplateResponse( + "documents.html", + { + "request": request, + "documents": documents + } + ) + except Exception as e: + error_msg = f"Error fetching documents: {str(e)}" + logging.error(error_msg) + logging.error(traceback.format_exc()) + raise HTTPException(status_code=500, detail=error_msg) + +@app.post("/upload-document") +async def upload_document( + file: UploadFile = File(...), + document_type: str = Form(...), +): + try: + # Generate unique document ID + doc_id = str(uuid.uuid4()) + logging.info(f"Processing upload for document ID: {doc_id}") + + # Save the uploaded file + file_path = f"data/uploads/{doc_id}_{file.filename}" + os.makedirs("data/uploads", exist_ok=True) + + with open(file_path, "wb") as buffer: + content = await file.read() + buffer.write(content) + + logging.info(f"File saved to {file_path}") + + # Process the document + await document_processor.process_document(doc_id, file_path, document_type) + + # Save document metadata + metadata = { + "document_id": doc_id, + "filename": file.filename, + "document_type": document_type, + } + + # Save metadata to database + database.save_metadata(doc_id, metadata) + + logging.info(f"Document {doc_id} processed successfully") + return {"document_id": doc_id, "message": "Document uploaded and processed successfully"} + except Exception as e: + error_msg = f"Error processing document: {str(e)}" + logging.error(error_msg) + logging.error(traceback.format_exc()) + raise HTTPException(status_code=500, detail=error_msg) + +@app.get("/document/{doc_id}/analysis", response_class=HTMLResponse) +async def get_analysis(request: Request, doc_id: str): + try: + analysis = await document_processor.get_analysis(doc_id) + metadata = database.get_metadata(doc_id) + + return templates.TemplateResponse( + "analysis.html", + { + "request": request, + "analysis": analysis, + "metadata": metadata + } + ) + except Exception as e: + error_msg = f"Error retrieving analysis: {str(e)}" + logging.error(error_msg) + logging.error(traceback.format_exc()) + raise HTTPException(status_code=404, detail=error_msg) + +@app.post("/document/{doc_id}/resubmit") +async def resubmit_document( + request: Request, + doc_id: str, + file: UploadFile = File(...), + document_type: Optional[str] = Form(None), + description: Optional[str] = Form(None) +): + try: + logging.info(f"Received resubmit request for document {doc_id}") + logging.info(f"File: {file.filename}, Document Type: {document_type}, Description: {description}") + + # Save the resubmitted file + file_path = f"data/uploads/{doc_id}_resubmit_{file.filename}" + os.makedirs("data/uploads", exist_ok=True) + + with open(file_path, "wb") as buffer: + content = await file.read() + buffer.write(content) + + logging.info(f"Saved resubmitted file to {file_path}") + + # Get existing metadata + try: + metadata = database.get_metadata(doc_id) + logging.info(f"Retrieved existing metadata for document {doc_id}: {metadata}") + + # Update metadata if provided + if document_type: + metadata["document_type"] = document_type + if description: + metadata["description"] = description + + # Save updated metadata + database.save_metadata(doc_id, metadata) + logging.info(f"Updated metadata for resubmitted document {doc_id}") + except Exception as e: + logging.error(f"Error updating metadata for resubmitted document {doc_id}: {str(e)}") + # If we can't get the metadata, use the provided document type or a default + if not document_type: + document_type = "unknown" + + # Process the resubmitted document with the correct document type + doc_type = document_type if document_type else metadata.get("document_type", "unknown") + logging.info(f"Processing resubmitted document {doc_id} with document type {doc_type}") + await document_processor.process_document(doc_id, file_path, doc_type, is_resubmission=True) + + logging.info(f"Document {doc_id} resubmitted successfully") + + # Redirect back to the analysis page + return RedirectResponse(url=f"/document/{doc_id}/analysis", status_code=303) + except Exception as e: + error_msg = f"Error resubmitting document: {str(e)}" + logging.error(error_msg) + logging.error(traceback.format_exc()) + raise HTTPException(status_code=500, detail=error_msg) + +@app.delete("/document/{doc_id}") +async def delete_document(doc_id: str): + try: + # Get document metadata to find the filename + metadata = database.get_metadata(doc_id) + filename = metadata.get('filename', '') + + # Delete the uploaded file + upload_path = f"data/uploads/{doc_id}_{filename}" + if os.path.exists(upload_path): + os.remove(upload_path) + logging.info(f"Deleted uploaded file: {upload_path}") + + # Delete any resubmitted files + resubmit_pattern = f"data/uploads/{doc_id}_resubmit_*" + for resubmit_file in os.listdir("data/uploads"): + if resubmit_file.startswith(f"{doc_id}_resubmit_"): + os.remove(os.path.join("data/uploads", resubmit_file)) + logging.info(f"Deleted resubmitted file: {resubmit_file}") + + # Delete from database + database.delete_document(doc_id) + + # Remove from vector store + vector_store.delete_document(doc_id) + logging.info(f"Removed document {doc_id} from vector store") + + return {"message": "Document deleted successfully"} + except HTTPException: + raise + except Exception as e: + error_msg = f"Error deleting document: {str(e)}" + logging.error(error_msg) + logging.error(traceback.format_exc()) + raise HTTPException(status_code=500, detail=error_msg) + +if __name__ == "__main__": + import uvicorn + uvicorn.run(app, host="127.0.0.1", port=8000) \ No newline at end of file diff --git a/src/reset_pinecone_index.py b/src/reset_pinecone_index.py new file mode 100644 index 0000000..9be3f13 --- /dev/null +++ b/src/reset_pinecone_index.py @@ -0,0 +1,42 @@ +from pinecone import Pinecone +from services.config import config +import logging + +# Configure logging +logging.basicConfig( + level=logging.INFO, + format='%(asctime)s - %(name)s - %(levelname)s - %(message)s', + handlers=[ + logging.FileHandler("reset_pinecone.log"), + logging.StreamHandler() + ] +) + +def reset_pinecone_index(): + try: + # Initialize Pinecone client + pinecone = Pinecone(api_key=config.PINECONE_API_KEY) + + # Check if index exists + if config.PINECONE_INDEX_NAME in pinecone.list_indexes().names(): + logging.info(f"Deleting existing index '{config.PINECONE_INDEX_NAME}'") + pinecone.delete_index(config.PINECONE_INDEX_NAME) + + # Create a new index with the correct dimension + logging.info(f"Creating new index '{config.PINECONE_INDEX_NAME}' with dimension {config.VECTOR_DIMENSION}") + pinecone.create_index( + name=config.PINECONE_INDEX_NAME, + dimension=config.VECTOR_DIMENSION, + metric="cosine", + spec=ServerlessSpec(cloud="aws", region="us-east-1") + ) + + logging.info("Pinecone index reset successfully") + return True + except Exception as e: + logging.error(f"Error resetting Pinecone index: {str(e)}") + return False + +if __name__ == "__main__": + from pinecone import ServerlessSpec + reset_pinecone_index() \ No newline at end of file diff --git a/src/scripts/migrate_to_sqlite.py b/src/scripts/migrate_to_sqlite.py new file mode 100644 index 0000000..faa072b --- /dev/null +++ b/src/scripts/migrate_to_sqlite.py @@ -0,0 +1,49 @@ +import os +import json +import logging +from services.database import Database + +def migrate_data(): + """Migrate existing data from filesystem to SQLite database.""" + try: + database = Database() + + # Migrate metadata + metadata_dir = "data/metadata" + if os.path.exists(metadata_dir): + for filename in os.listdir(metadata_dir): + if filename.endswith('.json'): + doc_id = filename[:-5] # Remove .json extension + with open(os.path.join(metadata_dir, filename), 'r') as f: + metadata = json.load(f) + database.save_metadata(doc_id, metadata) + logging.info(f"Migrated metadata for document {doc_id}") + + # Migrate analysis + analysis_dir = "data/analysis" + if os.path.exists(analysis_dir): + for filename in os.listdir(analysis_dir): + if filename.endswith('.json'): + doc_id = filename[:-5] # Remove .json extension + with open(os.path.join(analysis_dir, filename), 'r') as f: + analysis = json.load(f) + database.save_analysis(doc_id, analysis) + logging.info(f"Migrated analysis for document {doc_id}") + + logging.info("Migration completed successfully") + except Exception as e: + logging.error(f"Error during migration: {str(e)}") + raise + +if __name__ == "__main__": + # Configure logging + logging.basicConfig( + level=logging.INFO, + format='%(asctime)s - %(name)s - %(levelname)s - %(message)s', + handlers=[ + logging.FileHandler("migration.log"), + logging.StreamHandler() + ] + ) + + migrate_data() \ No newline at end of file diff --git a/src/services/__init__.py b/src/services/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/src/services/config.py b/src/services/config.py new file mode 100644 index 0000000..7d55410 --- /dev/null +++ b/src/services/config.py @@ -0,0 +1,24 @@ +from dataclasses import dataclass +from dotenv import load_dotenv +import os + +load_dotenv() + +@dataclass +class Settings: + # API Keys + COHERE_API_KEY: str = os.getenv("COHERE_API_KEY", "") + DEEPSEEK_API_KEY: str = os.getenv("DEEPSEEK_API_KEY", "") + PINECONE_API_KEY: str = os.getenv("PINECONE_API_KEY", "") + PINECONE_ENVIRONMENT: str = os.getenv("PINECONE_ENVIRONMENT", "") + + # Vector DB Settings + PINECONE_INDEX_NAME: str = "document-compliance" + + # Model Settings + COHERE_EMBEDDING_MODEL: str = "embed-english-v3.0" + COHERE_RERANKER_MODEL: str = "rerank-english-v2.0" + DEEPSEEK_MODEL: str = "deepseek-r1" + VECTOR_DIMENSION: int = 1024 # Updated to match Cohere's embedding dimension + +config = Settings() \ No newline at end of file diff --git a/src/services/database.py b/src/services/database.py new file mode 100644 index 0000000..547db65 --- /dev/null +++ b/src/services/database.py @@ -0,0 +1,162 @@ +import sqlite3 +import json +import logging +from typing import Dict, Any, Optional +import os + +class Database: + def __init__(self, db_path: str = "data/app.db"): + self.db_path = db_path + os.makedirs(os.path.dirname(db_path), exist_ok=True) + self._init_db() + + def _init_db(self): + """Initialize the database with required tables.""" + try: + with sqlite3.connect(self.db_path) as conn: + cursor = conn.cursor() + + # Create analysis table + cursor.execute(''' + CREATE TABLE IF NOT EXISTS analysis ( + document_id TEXT PRIMARY KEY, + summary TEXT, + issues TEXT, + recommendations TEXT, + created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP + ) + ''') + + # Create metadata table + cursor.execute(''' + CREATE TABLE IF NOT EXISTS metadata ( + document_id TEXT PRIMARY KEY, + filename TEXT, + document_type TEXT, + description TEXT, + created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP + ) + ''') + + conn.commit() + except Exception as e: + logging.error(f"Error initializing database: {str(e)}") + raise + + def save_analysis(self, document_id: str, analysis: Dict[str, Any]): + """Save analysis results to the database.""" + try: + with sqlite3.connect(self.db_path) as conn: + cursor = conn.cursor() + cursor.execute(''' + INSERT OR REPLACE INTO analysis (document_id, summary, issues, recommendations) + VALUES (?, ?, ?, ?) + ''', ( + document_id, + analysis['summary'], + json.dumps(analysis['issues']), + json.dumps(analysis['recommendations']) + )) + conn.commit() + except Exception as e: + logging.error(f"Error saving analysis for document {document_id}: {str(e)}") + raise + + def get_analysis(self, document_id: str) -> Dict[str, Any]: + """Retrieve analysis results from the database.""" + try: + with sqlite3.connect(self.db_path) as conn: + cursor = conn.cursor() + cursor.execute('SELECT summary, issues, recommendations FROM analysis WHERE document_id = ?', (document_id,)) + result = cursor.fetchone() + + if not result: + raise FileNotFoundError(f"Analysis not found for document {document_id}") + + return { + 'document_id': document_id, + 'summary': result[0], + 'issues': json.loads(result[1]), + 'recommendations': json.loads(result[2]) + } + except Exception as e: + logging.error(f"Error retrieving analysis for document {document_id}: {str(e)}") + raise + + def save_metadata(self, document_id: str, metadata: Dict[str, Any]): + """Save document metadata to the database.""" + try: + with sqlite3.connect(self.db_path) as conn: + cursor = conn.cursor() + cursor.execute(''' + INSERT OR REPLACE INTO metadata (document_id, filename, document_type, description) + VALUES (?, ?, ?, ?) + ''', ( + document_id, + metadata['filename'], + metadata['document_type'], + metadata.get('description') + )) + conn.commit() + except Exception as e: + logging.error(f"Error saving metadata for document {document_id}: {str(e)}") + raise + + def get_metadata(self, document_id: str) -> Dict[str, Any]: + """Retrieve document metadata from the database.""" + try: + with sqlite3.connect(self.db_path) as conn: + cursor = conn.cursor() + cursor.execute('SELECT filename, document_type, description FROM metadata WHERE document_id = ?', (document_id,)) + result = cursor.fetchone() + + if not result: + raise FileNotFoundError(f"Metadata not found for document {document_id}") + + return { + 'document_id': document_id, + 'filename': result[0], + 'document_type': result[1], + 'description': result[2] + } + except Exception as e: + logging.error(f"Error retrieving metadata for document {document_id}: {str(e)}") + raise + + def get_all_metadata(self) -> list: + """Retrieve metadata for all documents.""" + try: + with sqlite3.connect(self.db_path) as conn: + cursor = conn.cursor() + cursor.execute(''' + SELECT m.document_id, m.filename, m.document_type, m.description, m.created_at, + CASE WHEN a.document_id IS NOT NULL THEN 1 ELSE 0 END as has_analysis + FROM metadata m + LEFT JOIN analysis a ON m.document_id = a.document_id + ORDER BY m.created_at DESC + ''') + results = cursor.fetchall() + + return [{ + 'document_id': row[0], + 'filename': row[1], + 'document_type': row[2], + 'description': row[3], + 'upload_date': row[4], + 'status': 'completed' if row[5] == 1 else 'processing' + } for row in results] + except Exception as e: + logging.error(f"Error retrieving all metadata: {str(e)}") + raise + + def delete_document(self, document_id: str): + """Delete a document and its associated data from the database.""" + try: + with sqlite3.connect(self.db_path) as conn: + cursor = conn.cursor() + cursor.execute('DELETE FROM analysis WHERE document_id = ?', (document_id,)) + cursor.execute('DELETE FROM metadata WHERE document_id = ?', (document_id,)) + conn.commit() + except Exception as e: + logging.error(f"Error deleting document {document_id}: {str(e)}") + raise \ No newline at end of file diff --git a/src/services/document_processor.py b/src/services/document_processor.py new file mode 100644 index 0000000..f725992 --- /dev/null +++ b/src/services/document_processor.py @@ -0,0 +1,248 @@ +import cohere +import requests +from typing import List, Dict, Any +import json +import os +import logging +from services.config import config +from services.database import Database + +class DocumentProcessor: + def __init__(self, vector_store): + self.vector_store = vector_store + self.cohere_client = cohere.Client(config.COHERE_API_KEY) + self.deepseek_url = "https://api.deepseek.com/v1/chat/completions" + self.deepseek_headers = { + "Authorization": f"Bearer {config.DEEPSEEK_API_KEY}", + "Content-Type": "application/json" + } + self.database = Database() + + async def process_document(self, doc_id: str, file_path: str, document_type: str, is_resubmission: bool = False): + try: + # Read document content with error handling for encoding + try: + with open(file_path, 'r', encoding='utf-8') as f: + content = f.read() + except UnicodeDecodeError: + # Try with a different encoding if UTF-8 fails + with open(file_path, 'r', encoding='latin-1') as f: + content = f.read() + + logging.info(f"Processing document {doc_id} with content length: {len(content)}") + + # Generate embeddings + embeddings = self.cohere_client.embed( + texts=[content], + model=config.COHERE_EMBEDDING_MODEL, + input_type="search_document" # Required parameter for the model + ).embeddings[0] + + # Store in vector database + self.vector_store.store_embedding(doc_id, embeddings, content) + + # Process with DeepSeek for initial parsing + deepseek_parse_payload = { + "model": "deepseek-chat", + "messages": [ + { + "role": "system", + "content": "You are a document analysis assistant. Extract key sections and requirements from the following document." + }, + { + "role": "user", + "content": content + } + ], + "max_tokens": 4000 + } + + # Make the API call with error handling + try: + deepseek_parse_response = requests.post( + self.deepseek_url, + json=deepseek_parse_payload, + headers=self.deepseek_headers, + timeout=60 # Add timeout + ) + + # Check if the response is successful + if deepseek_parse_response.status_code != 200: + logging.error(f"DeepSeek API error: {deepseek_parse_response.status_code} - {deepseek_parse_response.text}") + # Use a fallback summary if the API call fails + summary = "Document analysis could not be completed due to API limitations." + else: + # Try to parse the JSON response + try: + deepseek_parse_result = deepseek_parse_response.json() + summary = deepseek_parse_result['choices'][0]['message']['content'] + except (json.JSONDecodeError, KeyError) as e: + logging.error(f"Error parsing DeepSeek response: {str(e)}") + logging.error(f"Response text: {deepseek_parse_response.text}") + summary = "Document analysis could not be completed due to parsing errors." + except requests.exceptions.RequestException as e: + logging.error(f"Error calling DeepSeek API: {str(e)}") + summary = "Document analysis could not be completed due to API connection issues." + + # Process with DeepSeek for deep reasoning using URL + deepseek_payload = { + "model": "deepseek-chat", + "messages": [ + { + "role": "system", + "content": "You are an expert in document compliance analysis. Analyze the following document for compliance issues and provide detailed feedback." + }, + { + "role": "user", + "content": f"""Analyze this type of document {document_type} for compliance issues and provide detailed feedback:\n\n{content} + and these are the main sections of the document:\n\n{summary}""" + } + ], + "max_tokens": 4000 + } + + # Make the API call with error handling + try: + deepseek_response = requests.post( + self.deepseek_url, + json=deepseek_payload, + headers=self.deepseek_headers, + timeout=60 # Add timeout + ) + + # Check if the response is successful + if deepseek_response.status_code != 200: + logging.error(f"DeepSeek API error: {deepseek_response.status_code} - {deepseek_response.text}") + # Use a fallback for issues if the API call fails + issues = ["Document analysis could not be completed due to API limitations."] + else: + # Try to parse the JSON response + try: + deepseek_result = deepseek_response.json() + issues = self._extract_issues(deepseek_result['choices'][0]['message']['content']) + except (json.JSONDecodeError, KeyError) as e: + logging.error(f"Error parsing DeepSeek response: {str(e)}") + logging.error(f"Response text: {deepseek_response.text}") + issues = ["Document analysis could not be completed due to parsing errors."] + except requests.exceptions.RequestException as e: + logging.error(f"Error calling DeepSeek API: {str(e)}") + issues = ["Document analysis could not be completed due to API connection issues."] + + # Use Cohere reranker to prioritize issues + try: + reranked_issues = self.cohere_client.rerank( + query="Compliance issues in technical document", + documents=issues, + model=config.COHERE_RERANKER_MODEL + ) + except Exception as e: + logging.error(f"Error using Cohere reranker: {str(e)}") + # Create a simple reranked issues list if Cohere fails + reranked_issues = [type('obj', (object,), {'document': issue, 'index': i}) for i, issue in enumerate(issues)] + + # Store analysis results + analysis = { + "document_id": doc_id, + "summary": summary, + "issues": self._format_issues(reranked_issues), + "recommendations": self._generate_recommendations(reranked_issues) + } + + # Save analysis to database + self.database.save_analysis(doc_id, analysis) + + # If this is a resubmission, update the metadata in the database + if is_resubmission: + try: + # Get existing metadata + existing_metadata = self.database.get_metadata(doc_id) + + # Update with new document type if provided + if document_type: + existing_metadata["document_type"] = document_type + + # Save updated metadata + self.database.save_metadata(doc_id, existing_metadata) + logging.info(f"Updated metadata for resubmitted document {doc_id}") + except Exception as e: + logging.error(f"Error updating metadata for resubmitted document {doc_id}: {str(e)}") + + logging.info(f"Document {doc_id} processed successfully") + return True + except Exception as e: + logging.error(f"Error processing document {doc_id}: {str(e)}") + raise + + async def get_analysis(self, doc_id: str) -> Dict[str, Any]: + return self.database.get_analysis(doc_id) + + def _extract_issues(self, deepseek_response: str) -> List[str]: + # Simple extraction of issues from DeepSeek's response + # In a real implementation, this would be more sophisticated + print(deepseek_response) + return [issue.strip() for issue in re.split(r'\d+\.', deepseek_response) if issue.strip()] + + def _format_issues(self, reranked_issues) -> List[Dict[str, Any]]: + return [ + { + "issue": issue[0] if isinstance(issue, tuple) else issue.document, + "severity": "high" if i < 3 else "medium" if i < 6 else "low", + "rank": i + 1 + } + for i, issue in enumerate(reranked_issues) + ] + + def _generate_recommendations(self, reranked_issues) -> List[str]: + # Generate specific recommendations for each issue + recommendations = [] + print(f"Generating recommendations for {reranked_issues} issues") + # Extract the results from the RerankResponse object + results = reranked_issues.results if hasattr(reranked_issues, 'results') else reranked_issues + + for issue in results[:5]: # Focus on top 5 issues + recommendation_payload = { + "model": "deepseek-chat", + "messages": [ + { + "role": "system", + "content": "You are an expert in document compliance. Provide specific, actionable recommendations to fix compliance issues." + }, + { + "role": "user", + "content": f"Provide a specific, actionable recommendation to fix this compliance issue: {issue}" + } + ], + "max_tokens": 1000 + } + + # Make the API call with error handling + try: + recommendation_response = requests.post( + self.deepseek_url, + json=recommendation_payload, + headers=self.deepseek_headers, + timeout=60 # Add timeout + ) + + # Check if the response is successful + if recommendation_response.status_code != 200: + logging.error(f"DeepSeek API error: {recommendation_response.status_code} - {recommendation_response.text}") + recommendations.append("Recommendation could not be generated due to API limitations.") + else: + # Try to parse the JSON response + try: + recommendation_result = recommendation_response.json() + recommendations.append(recommendation_result['choices'][0]['message']['content']) + except (json.JSONDecodeError, KeyError) as e: + logging.error(f"Error parsing DeepSeek response: {str(e)}") + logging.error(f"Response text: {recommendation_response.text}") + recommendations.append("Recommendation could not be generated due to parsing errors.") + except requests.exceptions.RequestException as e: + logging.error(f"Error calling DeepSeek API: {str(e)}") + recommendations.append("Recommendation could not be generated due to API connection issues.") + + return recommendations + + def _store_document(self, doc_id: str, file_path: str): + # save document to vector store + self.vector_store.add_document(doc_id, file_path) \ No newline at end of file diff --git a/src/services/embedding_service.py b/src/services/embedding_service.py new file mode 100644 index 0000000..398493e --- /dev/null +++ b/src/services/embedding_service.py @@ -0,0 +1,57 @@ +import cohere +from typing import List, Union +from services.config import config + +class EmbeddingService: + def __init__(self): + self.cohere_client = cohere.Client(config.COHERE_API_KEY) + self.model = config.COHERE_EMBEDDING_MODEL + + def create_embedding(self, text: str) -> List[float]: + """ + Create an embedding for a single text using Cohere. + + Args: + text (str): The text to create an embedding for + + Returns: + List[float]: The embedding vector + """ + response = self.cohere_client.embed( + texts=[text], + model=self.model, + input_type="search_document" + ) + return response.embeddings[0] + + def create_embeddings(self, texts: List[str]) -> List[List[float]]: + """ + Create embeddings for multiple texts using Cohere. + + Args: + texts (List[str]): List of texts to create embeddings for + + Returns: + List[List[float]]: List of embedding vectors + """ + response = self.cohere_client.embed( + texts=texts, + model=self.model, + input_type="search_document", + dimension=config.VECTOR_DIMENSION + ) + return response.embeddings + + def create_embedding_from_file(self, file_path: str) -> List[float]: + """ + Create an embedding from a file's contents. + + Args: + file_path (str): Path to the file to create an embedding for + + Returns: + List[float]: The embedding vector + """ + with open(file_path, 'r', encoding='utf-8') as f: + content = f.read() + return self.create_embedding(content) \ No newline at end of file diff --git a/src/services/vector_store.py b/src/services/vector_store.py new file mode 100644 index 0000000..839a4f2 --- /dev/null +++ b/src/services/vector_store.py @@ -0,0 +1,139 @@ +from pinecone import Pinecone, ServerlessSpec +from typing import List, Any, Optional +from services.config import config +from services.embedding_service import EmbeddingService +import logging +import os + +class VectorStore: + def __init__(self, pinecone_client: Optional[Pinecone] = None, embedding_service: Optional[EmbeddingService] = None): + self.pinecone = pinecone_client or Pinecone(api_key=config.PINECONE_API_KEY) + self.index_name = config.PINECONE_INDEX_NAME + self.embedding_service = embedding_service or EmbeddingService() + self._ensure_index() + + def _ensure_index(self): + """Ensure the Pinecone index exists, create if it doesn't.""" + try: + # Check if index exists, create if it doesn't + if self.index_name not in self.pinecone.list_indexes().names(): + # Create a new index with the correct dimension + self.pinecone.create_index( + name=self.index_name, + dimension=config.VECTOR_DIMENSION, # Using the dimension from config + metric="cosine", + spec=ServerlessSpec(cloud="aws", region="us-east-1") + ) + logging.info(f"Created new index '{self.index_name}' with dimension {config.VECTOR_DIMENSION}") + + self.index = self.pinecone.Index(self.index_name) + + # Check if the index dimension matches the config dimension + self._check_index_dimension() + except Exception as e: + logging.error(f"Error ensuring index exists: {str(e)}") + raise + + def _check_index_dimension(self): + """Check if the index dimension matches the config dimension and fix if needed.""" + try: + # Get the index description + index_description = self.pinecone.describe_index(self.index_name) + index_dimension = index_description.dimension + + if index_dimension != config.VECTOR_DIMENSION: + logging.warning(f"Index dimension {index_dimension} does not match config dimension {config.VECTOR_DIMENSION}") + logging.info("Recreating index with correct dimension...") + + # Delete the existing index + self.pinecone.delete_index(self.index_name) + + # Create a new index with the correct dimension + self.pinecone.create_index( + name=self.index_name, + dimension=config.VECTOR_DIMENSION, + metric="cosine", + spec=ServerlessSpec(cloud="aws", region="us-east-1") + ) + + # Reinitialize the index + self.index = self.pinecone.Index(self.index_name) + logging.info(f"Index recreated with dimension {config.VECTOR_DIMENSION}") + except Exception as e: + logging.error(f"Error checking index dimension: {str(e)}") + raise + + def store_embedding(self, doc_id: str, embedding: List[float], content: str): + """Store document embedding in Pinecone.""" + try: + # Verify embedding dimension matches the index dimension + if len(embedding) != config.VECTOR_DIMENSION: + raise ValueError(f"Embedding dimension {len(embedding)} does not match index dimension {config.VECTOR_DIMENSION}") + + self.index.upsert( + vectors=[{ + "id": doc_id, + "values": embedding, + "metadata": { + "content": content + } + }] + ) + logging.info(f"Stored embedding for document {doc_id}") + except Exception as e: + logging.error(f"Error storing embedding for document {doc_id}: {str(e)}") + raise + + def search_similar(self, query_embedding: List[float], top_k: int = 5) -> List[Any]: + """Search for similar documents.""" + try: + # Verify query embedding dimension matches the index dimension + if len(query_embedding) != config.VECTOR_DIMENSION: + raise ValueError(f"Query embedding dimension {len(query_embedding)} does not match index dimension {config.VECTOR_DIMENSION}") + + results = self.index.query( + vector=query_embedding, + top_k=top_k, + include_metadata=True + ) + return results.matches + except Exception as e: + logging.error(f"Error searching for similar documents: {str(e)}") + raise + + def delete_document(self, doc_id: str): + """Delete a document from the index.""" + try: + self.index.delete(ids=[doc_id]) + logging.info(f"Deleted document {doc_id} from index") + except Exception as e: + logging.error(f"Error deleting document {doc_id}: {str(e)}") + raise + + def add_document(self, doc_id: str, file_path: str): + """Add a document to the index.""" + try: + # Check if file exists + if not os.path.exists(file_path): + raise FileNotFoundError(f"File not found: {file_path}") + + # read document content with error handling for encoding + try: + with open(file_path, "r", encoding="utf-8") as file: + content = file.read() + except UnicodeDecodeError: + # Try with a different encoding if UTF-8 fails + with open(file_path, "r", encoding="latin-1") as file: + content = file.read() + + # create embedding + embedding = self.embedding_service.create_embedding(content) + + # store embedding + logging.info(f"Storing embedding for document {doc_id}") + self.store_embedding(doc_id, embedding, content) + + return True + except Exception as e: + logging.error(f"Error adding document {doc_id}: {str(e)}") + raise \ No newline at end of file diff --git a/src/static/css/markdown.css b/src/static/css/markdown.css new file mode 100644 index 0000000..8d5b0f6 --- /dev/null +++ b/src/static/css/markdown.css @@ -0,0 +1,104 @@ +/* Markdown Styles */ +.markdown-body { + font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif; + font-size: 16px; + line-height: 1.5; + word-wrap: break-word; +} + +.markdown-body h1, +.markdown-body h2, +.markdown-body h3, +.markdown-body h4, +.markdown-body h5, +.markdown-body h6 { + margin-top: 24px; + margin-bottom: 16px; + font-weight: 600; + line-height: 1.25; +} + +.markdown-body h1 { font-size: 2em; } +.markdown-body h2 { font-size: 1.5em; } +.markdown-body h3 { font-size: 1.25em; } +.markdown-body h4 { font-size: 1em; } +.markdown-body h5 { font-size: 0.875em; } +.markdown-body h6 { font-size: 0.85em; } + +.markdown-body p { + margin-top: 0; + margin-bottom: 16px; +} + +.markdown-body ul, +.markdown-body ol { + padding-left: 2em; + margin-top: 0; + margin-bottom: 16px; +} + +.markdown-body code { + padding: 0.2em 0.4em; + margin: 0; + font-size: 85%; + background-color: rgba(27, 31, 35, 0.05); + border-radius: 3px; + font-family: "SFMono-Regular", Consolas, "Liberation Mono", Menlo, monospace; +} + +.markdown-body pre { + padding: 16px; + overflow: auto; + font-size: 85%; + line-height: 1.45; + background-color: #f6f8fa; + border-radius: 3px; + margin-top: 0; + margin-bottom: 16px; +} + +.markdown-body pre code { + padding: 0; + margin: 0; + font-size: 100%; + word-break: normal; + white-space: pre; + background: transparent; + border: 0; +} + +.markdown-body blockquote { + padding: 0 1em; + color: #6a737d; + border-left: 0.25em solid #dfe2e5; + margin: 0 0 16px 0; +} + +.markdown-body table { + display: block; + width: 100%; + overflow: auto; + margin-top: 0; + margin-bottom: 16px; + border-spacing: 0; + border-collapse: collapse; +} + +.markdown-body table th { + font-weight: 600; +} + +.markdown-body table th, +.markdown-body table td { + padding: 6px 13px; + border: 1px solid #dfe2e5; +} + +.markdown-body table tr { + background-color: #fff; + border-top: 1px solid #c6cbd1; +} + +.markdown-body table tr:nth-child(2n) { + background-color: #f6f8fa; +} \ No newline at end of file diff --git a/src/static/css/style.css b/src/static/css/style.css new file mode 100644 index 0000000..00e4e81 --- /dev/null +++ b/src/static/css/style.css @@ -0,0 +1,62 @@ +/* Custom styles for Mini SpecsComply Pro */ + +body { + min-height: 100vh; + display: flex; + flex-direction: column; +} + +.footer { + margin-top: auto; +} + +.card { + box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1); + border: none; + border-radius: 8px; +} + +.card-header { + border-radius: 8px 8px 0 0 !important; +} + +.form-control:focus, .form-select:focus { + border-color: #0d6efd; + box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25); +} + +.btn-primary { + padding: 0.5rem 1.5rem; + font-weight: 500; +} + +.list-group-item { + border-left: none; + border-right: none; +} + +.list-group-item:first-child { + border-top: none; +} + +.list-group-item:last-child { + border-bottom: none; +} + +/* File upload styling */ +input[type="file"] { + padding: 0.375rem 0.75rem; +} + +/* Spinner styling */ +.spinner-border { + margin-right: 0.5rem; +} + +/* Responsive adjustments */ +@media (max-width: 768px) { + .container { + padding-left: 15px; + padding-right: 15px; + } +} \ No newline at end of file diff --git a/src/static/js/main.js b/src/static/js/main.js new file mode 100644 index 0000000..e7669b0 --- /dev/null +++ b/src/static/js/main.js @@ -0,0 +1,79 @@ +// Main JavaScript file for Mini SpecsComply Pro + +// Function to show toast notifications +function showToast(message, type = 'info') { + // Create toast element + const toast = document.createElement('div'); + toast.className = `toast align-items-center text-white bg-${type} border-0`; + toast.setAttribute('role', 'alert'); + toast.setAttribute('aria-live', 'assertive'); + toast.setAttribute('aria-atomic', 'true'); + + // Create toast content + toast.innerHTML = ` +

+
+ ${message} +
+ +
+ `; + + // Add toast to container + const toastContainer = document.getElementById('toastContainer') || createToastContainer(); + toastContainer.appendChild(toast); + + // Initialize and show toast + const bsToast = new bootstrap.Toast(toast); + bsToast.show(); + + // Remove toast after it's hidden + toast.addEventListener('hidden.bs.toast', () => { + toast.remove(); + }); +} + +// Function to create toast container if it doesn't exist +function createToastContainer() { + const container = document.createElement('div'); + container.id = 'toastContainer'; + container.className = 'toast-container position-fixed bottom-0 end-0 p-3'; + document.body.appendChild(container); + return container; +} + +// Function to validate file type +function validateFileType(input) { + const allowedTypes = ['application/pdf', 'application/vnd.openxmlformats-officedocument.wordprocessingml.document', 'text/plain', 'text/markdown']; + const file = input.files[0]; + + if (file && !allowedTypes.includes(file.type)) { + showToast('Please upload a PDF, DOCX, TXT, or MD file.', 'danger'); + input.value = ''; + return false; + } + + return true; +} + +// Add event listeners when DOM is loaded +document.addEventListener('DOMContentLoaded', function() { + // File input validation + const fileInput = document.getElementById('documentFile'); + if (fileInput) { + fileInput.addEventListener('change', function() { + validateFileType(this); + }); + } + + // Document type change handler + const docTypeSelect = document.getElementById('documentType'); + if (docTypeSelect) { + docTypeSelect.addEventListener('change', function() { + const descriptionField = document.getElementById('documentDescription'); + if (descriptionField) { + descriptionField.placeholder = `Brief description of your ${this.options[this.selectedIndex].text.toLowerCase()}...`; + } + }); + } +}); \ No newline at end of file diff --git a/src/templates/analysis.html b/src/templates/analysis.html new file mode 100644 index 0000000..372bb19 --- /dev/null +++ b/src/templates/analysis.html @@ -0,0 +1,135 @@ +{% extends "base.html" %} + +{% block title %}Analysis Results - Mini SpecsComply Pro{% endblock %} + +{% block extra_css %} + +{% endblock %} + +{% block content %} +
+ + + +{% endblock %} + +{% block extra_js %} + +{% endblock %} \ No newline at end of file diff --git a/src/templates/base.html b/src/templates/base.html new file mode 100644 index 0000000..30e37b7 --- /dev/null +++ b/src/templates/base.html @@ -0,0 +1,52 @@ + + + + + + {% block title %}Mini SpecsComply Pro{% endblock %} + + + + + {% block extra_css %}{% endblock %} + + + + +
+ {% block content %}{% endblock %} +
+ + +
+ +
+
+ © 2025 Mini SpecsComply Pro +
+
+ + + + + + {% block extra_js %}{% endblock %} + + \ No newline at end of file diff --git a/src/templates/documents.html b/src/templates/documents.html new file mode 100644 index 0000000..f54e1dc --- /dev/null +++ b/src/templates/documents.html @@ -0,0 +1,131 @@ +{% extends "base.html" %} + +{% block title %}My Documents - Mini SpecsComply Pro{% endblock %} + +{% block content %} +
+
+
+
+

My Documents

+ Upload New Document +
+
+ {% if documents %} +
+ + + + + + + + + + + + {% for doc in documents %} + + + + + + + + {% endfor %} + +
DocumentTypeUpload DateStatusActions
+
+ {{ doc.filename }} + {% if doc.description %} +
{{ doc.description }}
+ {% endif %} +
+
+ {{ doc.document_type|replace('_', ' ')|title }} + {{ doc.upload_date }} + {% if doc.status == 'completed' %} + Completed + {% elif doc.status == 'processing' %} + Processing + {% else %} + Failed + {% endif %} + +
+ View Analysis + +
+ + + +
+
+ {% else %} +
+
No documents uploaded yet
+

Upload your first document to get started with compliance analysis.

+ Upload Document +
+ {% endif %} +
+
+
+
+{% endblock %} + +{% block extra_js %} + +{% endblock %} \ No newline at end of file diff --git a/src/templates/index.html b/src/templates/index.html new file mode 100644 index 0000000..862c6ce --- /dev/null +++ b/src/templates/index.html @@ -0,0 +1,99 @@ +{% extends "base.html" %} + +{% block title %}Home - Mini SpecsComply Pro{% endblock %} + +{% block content %} +
+
+
+
+

Upload Document for Compliance Analysis

+
+
+
+
+ + +
+ +
+ + +
Supported formats: PDF, DOCX, TXT, MD
+
+ +
+ +
+
+
+
+ +
+
+
How It Works
+
+
+
    +
  1. Upload your document and select its type
  2. +
  3. Our AI analyzes the document for compliance issues
  4. +
  5. Receive a detailed report with issues and recommendations
  6. +
  7. Make necessary changes and resubmit if needed
  8. +
+
+
+
+
+{% endblock %} + +{% block extra_js %} + +{% endblock %} \ No newline at end of file