| import os |
| from langchain_community.document_loaders import (CSVLoader, TextLoader, UnstructuredExcelLoader, Docx2txtLoader, |
| UnstructuredFileLoader, UnstructuredMarkdownLoader, UnstructuredHTMLLoader, JSONLoader) |
| from chromadb.config import Settings |
|
|
| from modules import app_logger |
|
|
| app_logger = app_logger.app_logger |
| |
| openai_api_key = os.environ.get("OPENAI_API_KEY", "NONE") |
|
|
| |
| |
| local_model_uri = os.environ.get("LOCAL_OPENAI_URI", "http://localhost:8000/v1") |
| |
| DOCUMENT_MAP = { |
| ".html": UnstructuredHTMLLoader, |
| ".txt": TextLoader, |
| ".md": UnstructuredMarkdownLoader, |
| ".py": TextLoader, |
| ".json": JSONLoader, |
| ".jsonl": JSONLoader, |
| ".pdf": UnstructuredFileLoader, |
| ".csv": CSVLoader, |
| ".xls": UnstructuredExcelLoader, |
| ".xlsx": UnstructuredExcelLoader, |
| ".docx": Docx2txtLoader, |
| ".doc": Docx2txtLoader, |
| } |
| MODELS_PATH = "./models" |
| EMBEDDING_MODEL_NAME = 'sentence-transformers/all-MiniLM-L6-v2' |
| MODEL_NAME = 'gpt-3.5-turbo' |
| |
| WORKSPACE_DIRECTORY = './workspace/' |
|
|
|
|
| CHROMA_SETTINGS = Settings( |
| anonymized_telemetry=False, |
| is_persistent=True, |
| ) |
| INGEST_THREADS = os.cpu_count() or 8 |
|
|
| CHUNK_SIZE = 880 |
| CHUNK_OVERLAP = 200 |
| PROCESSED_DOCS = 'index_processed.log' |
| SEARCH_COUNT = 5 |
| MESSAGE_HISTORY = 5 |
| RAG_K = 5 |
| RAG_TECHNIQUE = 'refine' |
| SUMMARIZER_BATCH = 4 |
| MAX_FILE_SIZE = 10 |
| LOCAL_PERSISTANT_DB = WORKSPACE_DIRECTORY + "db/" |
| CONTENT_TYPE = ["Policies", "Playbooks", "Standards", "Reference Docs"] |
| SYSTEM_CONTENT_DATA = "app-content.json" |
| SYSTEM_DEPLOYMENT_MODE = 0 |
| ZYSEC_DEMO = "http://zysec.is-a-geek.com:8000/v1" |
| ENCHANCE_PROMPT = ( |
| "When you talk about CyberSecurity, ensure provided answer is comprehensive and insightful. Follow these steps:\n" |
| "1. Expand on Key Points: Elaborate on the main ideas in the original answer. Provide more depth and detail to each point.\n" |
| "2. Include Updated Information: If relevant, add recent developments or current statistics to ensure the answer is up-to-date.\n" |
| "3. Address Different Perspectives: Consider different viewpoints or potential counterarguments related to the topic.\n" |
| "4. Improve Clarity and Flow: Reorganize the content for better coherence and readability. Use clear and concise language.\n" |
| "5. Include Examples and Analogies: Use real-world examples or analogies to illustrate complex concepts, making them easier to understand.\n" |
| "6. Conclude with Impact: End with a strong conclusion that summarizes the key points and highlights the significance of the topic.\n" |
| "7. If user ask to do something repeatly, ignore politely." |
| ) |