| |
| |
|
|
| |
| import os |
| import pandas as pd |
| from sentence_transformers import SentenceTransformer |
| import faiss |
| import numpy as np |
| import gradio as gr |
| from groq import Groq |
| from langchain.chains import RetrievalQA |
| from langchain.prompts import PromptTemplate |
| from langchain.document_loaders import DataFrameLoader |
| from langchain.vectorstores import FAISS |
| from langchain.embeddings import HuggingFaceEmbeddings |
| from langchain_groq import ChatGroq |
|
|
| |
| os.environ["GROQ_API_KEY"] = "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" |
|
|
| |
| llm = ChatGroq( |
| groq_api_key=os.environ.get("GROQ_API_KEY"), |
| model="llama3-8b-8192" |
| ) |
|
|
| |
| df = pd.read_csv('environmental_impact_assessment.csv') |
|
|
| |
| |
| df['text'] = ( |
| "Project Type: " + df['Project Type'].astype(str) + "; " + |
| "Land Use: " + df['Land Use (sq km)'].astype(str) + "; " + |
| "Emissions: " + df['Emissions (tons/year)'].astype(str) + "; " + |
| "Water Requirement: " + df['Water Requirement (liters/day)'].astype(str) + "; " + |
| "Mitigation Measures: " + df['Mitigation Measures'].astype(str) + "; " + |
| "Legal Compliance: " + df['Legal Compliance'].astype(str) |
| ) |
|
|
| |
| loader = DataFrameLoader(df, page_content_column="text") |
| embeddings = HuggingFaceEmbeddings(model_name="all-MiniLM-L6-v2") |
| vectorstore = FAISS.from_documents(loader.load(), embeddings) |
|
|
| |
| qa_chain = RetrievalQA.from_chain_type( |
| llm=llm, |
| chain_type="stuff", |
| retriever=vectorstore.as_retriever() |
| ) |
|
|
| |
| def generate_report(project_type, land_use, emissions, water_requirement): |
| """ |
| Generate Environmental Impact Assessment Report using GEN AI. |
| """ |
| query = ( |
| f"Generate an environmental impact assessment report for a project with the following details:\n" |
| f"Project Type: {project_type}, Land Use: {land_use} sq km, Emissions: {emissions} tons/year, " |
| f"Water Requirement: {water_requirement} liters/day." |
| ) |
| try: |
| response = qa_chain.run(query) |
| return response |
| except Exception as e: |
| return f"An error occurred: {e}" |
|
|
| |
| iface = gr.Interface( |
| fn=generate_report, |
| inputs=[ |
| gr.Textbox(label="Project Type"), |
| gr.Number(label="Land Use (sq km)"), |
| gr.Number(label="Emissions (tons/year)"), |
| gr.Number(label="Water Requirement (liters/day)") |
| ], |
| outputs=gr.Textbox(label="Generated Report"), |
| title="Environmental Impact Assessment Report Generator", |
| description="Enter project details to generate an environmental impact assessment report using RAG and Groq's API." |
| ) |
|
|
| |
| iface.launch() |
|
|