|
from langchain_core.pydantic_v1 import BaseModel, Field |
|
|
|
|
|
class QueryAnalysis(BaseModel): |
|
"""Analyzing the user query""" |
|
|
|
esrs_type: str = Field( |
|
enum=[ |
|
"ESRS 1", |
|
"ESRS 2", |
|
"ESRS E1", |
|
"ESRS E2", |
|
"ESRS E3", |
|
"ESRS E4", |
|
"ESRS E5", |
|
"ESRS S1", |
|
"ESRS S2", |
|
"ESRS S3", |
|
"ESRS S4", |
|
"ESRS G1", |
|
], |
|
description=""" |
|
Given a user question choose which documents would be most relevant for answering their question, |
|
- ESRS 1 is for questions about general principles for preparing and presenting sustainability information in accordance with CSRD |
|
- ESRS 2 is for questions about general disclosures related to sustainability reporting, including governance, strategy, impact, risk, opportunity management, and metrics and targets |
|
- ESRS E1 is for questions about climate change, global warming, GES and energy |
|
- ESRS E2 is for questions about air, water, and soil pollution, and dangerous substances |
|
- ESRS E3 is for questions about water and marine resources |
|
- ESRS E4 is for questions about biodiversity, nature, wildlife and ecosystems |
|
- ESRS E5 is for questions about resource use and circular economy |
|
- ESRS S1 is for questions about workforce and labor issues, job security, fair pay, and health and safety |
|
- ESRS S2 is for questions about workers in the value chain, workers' treatment |
|
- SRS S3 is for questions about affected communities, impact on local communities |
|
- ESRS S4 is for questions about consumers and end users, customer privacy, safety, and inclusion |
|
- ESRS G1 is for questions about governance, risk management, internal control, and business conduct |
|
""", |
|
) |
|
|
|
sources: str = Field( |
|
enum=["ESRS", "External"], |
|
description=""" |
|
Given a user question choose which documents would be most relevant for answering their question, |
|
- ESRS is for questions about a specific environmental, social or governance topic, as well as CSRD's general principles and disclosures |
|
- External is for questions about how to implement the CSRD, or general questions about CSRD's context |
|
""", |
|
) |
|
|
|
intent: str = Field( |
|
enum=[ |
|
"Specific topic", |
|
"Implementation reco", |
|
"KPI extraction", |
|
], |
|
description=""" |
|
Categorize the user query in one of the following categories, |
|
|
|
Examples: |
|
- Specific topic: "What are the specificities of ESRS E1 ?" |
|
- Implementation reco: "How should I compute my scope 1 reduction target ?" |
|
- KPI extraction: "When will the CSRD be mandatory for my small French company ?" |
|
""", |
|
) |
|
|