import os from dotenv import load_dotenv load_dotenv() ENVIRONMENT = os.getenv("ENVIRONMENT") if ENVIRONMENT == "dev": AI_MODELS = { "Huggingface / Meta Llama 3.1 8B Instruct": "meta-llama/Llama-3.1-8B-Instruct", "Huggingface / Mistral Nemo Instruct": "mistralai/Mistral-Nemo-Instruct-2407", "Huggingface / Microsoft Phi 4 Mini Instruct": "microsoft/Phi-4-mini-instruct", "Huggingface / Google Gemma 3 4B Instruct": "google/gemma-3-4b-it", "IBM Granite3.1 dense / Ollama local": "ollama", "Open AI / GPT-4o-mini": "openai", } else: AI_MODELS = { "Huggingface / Meta Llama 3.1 8B Instruct": "meta-llama/Llama-3.1-8B-Instruct", "Huggingface / Mistral Nemo Instruct": "mistralai/Mistral-Nemo-Instruct-2407", "Huggingface / Microsoft Phi 4 Mini Instruct": "microsoft/Phi-4-mini-instruct", "Huggingface / Google Gemma 3 4B Instruct": "google/gemma-3-4b-it", "Open AI / GPT-4o-mini": "openai", } TRANSLATIONS = { "Español": { "title": "# 📚 Procesador de PDF con QA y Resumen", "api_key_required": "Para usar este modelo, necesitas una clave de API.", "model_type": "Tipo de modelo", "api_key_placeholder": "Ingresa tu clave de API", "project_id_placeholder": "Ingresa tu ID de proyecto", "ai_model": "Modelo AI", "upload_pdf": "Cargar PDF", "upload_images": "Cargar imĂĄgenes", "chunk_size": "Tamaño de chunk", "chunk_overlap": "SuperposiciĂłn de chunk", "process_btn": "Procesar", "processing_status": "Estado del procesamiento", "qa_tab": "Preguntas y Respuestas", "summary_tab": "Resumen", "chat_placeholder": "Haz una pregunta sobre el documento...", "chat_title": "Pregunta al documento", "chat_btn": "Preguntar", "generate_summary": "Generar Resumen", "summary_label": "Resumen del documento", "pdf_processed": "PDF procesado y almacenado correctamente", "load_pdf_first": "Por favor, carga un PDF primero.", "map_prompt": """Escribe un resumen conciso del siguiente texto: "{text}" RESUMEN CONCISO:""", "combine_prompt": """Escribe un resumen detallado basado en los siguientes resĂșmenes de diferentes secciones del texto: "{text}" RESUMEN DETALLADO:""", "mini_summary_title": "ResĂșmenes de cada fragmento", "mini_analysis_title": "AnĂĄlisis de cada fragmento", "specialist_tab": "Asesor a tu medida", "specialist_title": "Asesor a tu medida", "specialist_label": "Establece el comportamiento y rol de tu asesor. Ej: Eres un especialista de finanzas que ayuda a interpretar los datos de un reporte financiero. A partir del documento y tu basta experiencia cuĂ©ntame que oportunidades y riesgos ves al invertir en lo que te proponen.", "specialist_output": "Respuesta de tu asesor", "specialist_btn": "Generar Respuesta" }, "English": { "title": "# 📚 PDF Processor with QA and Summary", "api_key_required": "To use this model, you need an API key.", "model_type": "Model type", "api_key_placeholder": "Enter your API key", "project_id_placeholder": "Enter your project ID", "ai_model": "AI Model", "upload_pdf": "Upload PDF", "upload_images": "Upload Images", "chunk_size": "Chunk size", "chunk_overlap": "Chunk overlap", "process_btn": "Process", "processing_status": "Processing status", "qa_tab": "Questions and Answers", "summary_tab": "Summary", "chat_placeholder": "Ask a question about the document...", "chat_title": "Question to document", "chat_btn": "Ask", "generate_summary": "Generate Summary", "summary_label": "Document summary", "pdf_processed": "PDF processed and stored successfully", "load_pdf_first": "Please load a PDF first.", "map_prompt": """Write a concise summary of the following text: "{text}" CONCISE SUMMARY:""", "combine_prompt": """Write a detailed summary based on the following summaries from different sections of the text: "{text}" DETAILED SUMMARY:""", "mini_summary_title": "Summaries of each fragment", "mini_analysis_title": "Analysis of each fragment", "specialist_tab": "Customized Advisor", "specialist_title": "Customized Advisor", "specialist_label": "Set the behavior and role of your advisor. Example: You are a financial expert who helps interpret the data of a financial report. Based on the document and your extensive experience, tell me what opportunities and risks you see in what they propose.", "specialist_output": "Answer of your advisor", "specialist_btn": "Generate Answer" }, "Deutsch": { "title": "# 📚 PDF-Prozessor mit Q&A und Zusammenfassung", "model_type": "Modelltyp", "api_key_required": "Um dieses Modell zu verwenden, benötigen Sie einen API-SchlĂŒssel.", "api_key_placeholder": "API-SchlĂŒssel eingeben", "project_id_placeholder": "Projekt-ID eingeben", "ai_model": "AI-Modell", "upload_pdf": "PDF hochladen", "upload_images": "Bilder hochladen", "chunk_size": "Chunk-GrĂ¶ĂŸe", "chunk_overlap": "Chunk-Überlappung", "process_btn": "PDF verarbe", "processing_status": "Verarbeitungsstatus", "qa_tab": "Fragen und Antworten", "summary_tab": "Zusammenfassung", "chat_placeholder": "Stellen Sie eine Frage zum Dokument...", "chat_title": "Frage zum Dokument", "chat_btn": "Fragen", "generate_summary": "Zusammenfassung generieren", "summary_label": "Dokumentzusammenfassung", "pdf_processed": "PDF erfolgreich verarbeitet und gespeichert", "load_pdf_first": "Bitte laden Sie zuerst ein PDF hoch.", "map_prompt": """Schreiben Sie eine kurze Zusammenfassung des folgenden Textes: "{text}" KURZE ZUSAMMENFASSUNG:""", "combine_prompt": """Schreiben Sie eine detaillierte Zusammenfassung basierend auf den folgenden Zusammenfassungen verschiedener Textabschnitte: "{text}" DETAILLIERTE ZUSAMMENFASSUNG:""", "mini_summary_title": "Zusammenfassungen von jedem Fragment", "mini_analysis_title": "Analyse von jedem Fragment", "specialist_tab": "Anpassbarer Berater", "specialist_title": "Anpassbarer Berater", "specialist_label": "Setzen Sie das Verhalten und die Rolle Ihres Beraters fest. Beispiel: Sie sind ein Finanzexperte, der bei der Interpretation von Finanzdaten aus einem Bericht hilft. Basierend auf dem Dokument und Ihrer umfassenden Erfahrung, erzĂ€hlen Sie mir, was Sie in dem sehen, was sie Ihnen vorschlagen.", "specialist_output": "Antwort Ihres Beraters", "specialist_btn": "Antwort generieren" }, "Français": { "title": "# 📚 Processeur PDF avec QR et RĂ©sumĂ©", "model_type": "Type de modĂšle", "api_key_required": "Pour utiliser ce modĂšle, vous avez besoin d'une clĂ© API.", "api_key_placeholder": "Entrez votre clĂ© API", "project_id_placeholder": "Entrez votre ID de projet", "ai_model": "ModĂšle AI", "upload_pdf": "Charger PDF", "upload_images": "Charger images", "chunk_size": "Taille du chunk", "chunk_overlap": "Chevauchement du chunk", "process_btn": "Traiter le", "processing_status": "État du traitement", "qa_tab": "Questions et RĂ©ponses", "summary_tab": "RĂ©sumĂ©", "chat_placeholder": "Posez une question sur le document...", "chat_title": "Question au document", "chat_btn": "Poser une question", "generate_summary": "GĂ©nĂ©rer le rĂ©sumĂ©", "summary_label": "RĂ©sumĂ© du document", "pdf_processed": "PDF traitĂ© et enregistrĂ© avec succĂšs", "load_pdf_first": "Veuillez d'abord charger un PDF.", "map_prompt": """Écrivez un rĂ©sumĂ© concis du texte suivant : "{text}" RÉSUMÉ CONCIS :""", "combine_prompt": """Écrivez un rĂ©sumĂ© dĂ©taillĂ© basĂ© sur les rĂ©sumĂ©s suivants de diffĂ©rentes sections du texte : "{text}" RÉSUMÉ DÉTAILLÉ :""", "mini_summary_title": "RĂ©sumĂ©s de chaque fragment", "mini_analysis_title": "Analyse de chaque fragment", "specialist_tab": "Conseiller personnalisĂ©", "specialist_title": "Conseiller personnalisĂ©", "specialist_label": "DĂ©finissez le comportement et le rĂŽle de votre conseiller. Exemple : Vous ĂȘtes un expert financier qui aide Ă  interprĂ©ter les donnĂ©es d'un rapport financier. BasĂ© sur le document et votre vaste expĂ©rience, partagez-moi ce que vous voyez dans ce qu'ils vous proposent.", "specialist_output": "RĂ©ponse de votre conseiller", "specialist_btn": "GĂ©nĂ©rer la rĂ©ponse" }, "PortuguĂȘs": { "title": "# 📚 Processador de PDF com P&R e Resumo", "model_type": "Tipo de modelo", "api_key_required": "Para usar este modelo, necesitas una clave de API.", "api_key_placeholder": "Digite sua chave API", "project_id_placeholder": "Digite seu ID de projeto", "ai_model": "Modelo AI", "upload_pdf": "Carregar PDF", "upload_images": "Carregar imagens", "chunk_size": "Tamanho do chunk", "chunk_overlap": "Sobreposição do chunk", "process_btn": "Processar", "processing_status": "Status do processamento", "qa_tab": "Perguntas e Respostas", "summary_tab": "Resumo", "chat_placeholder": "Faça uma pergunta sobre o documento...", "chat_title": "Pergunta ao documento", "chat_btn": "Perguntar", "generate_summary": "Gerar Resumo", "summary_label": "Resumo do documento", "pdf_processed": "PDF processado e armazenado com sucesso", "load_pdf_first": "Por favor, carregue um PDF primeiro.", "map_prompt": """Escreva um resumo conciso do seguinte texto: "{text}" RESUMO CONCISO:""", "combine_prompt": """Escreva um resumo detalhado baseado nos seguintes resumos de diferentes seçÔes do texto: "{text}" RESUMO DETALHADO:""", "mini_summary_title": "ResĂșmenes de cada fragmento", "mini_analysis_title": "AnĂĄlisis de cada fragmento", "specialist_tab": "Assistente Personalizado", "specialist_title": "Assistente Personalizado", "specialist_label": "Defina o comportamento e o papel do seu assistente. Exemplo: VocĂȘ Ă© um especialista em finanças que ajuda a interpretar os dados de um relatĂłrio financeiro. Com base no documento e em sua ampla experiĂȘncia, compartilhe comigo o que vocĂȘ vĂȘ naquilo que eles lhe propĂ”em.", "specialist_output": "Resposta do seu assistente", "specialist_btn": "Gerar Resposta" } }