Yaswanth123 commited on
Commit
aa03f63
·
verified ·
1 Parent(s): 3a7aabb

create config.py

Browse files
Files changed (1) hide show
  1. config.py +67 -0
config.py ADDED
@@ -0,0 +1,67 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # FILE: config.py
2
+ # (Corrected and complete version with all constants)
3
+
4
+ import os
5
+ import dspy
6
+ import logging
7
+ from dotenv import load_dotenv
8
+ from dspy_llm_wrapper import SyncCustomGeminiDspyLM
9
+
10
+ # Load environment variables from a .env file
11
+ load_dotenv()
12
+
13
+ # Setup basic logging
14
+ logging.basicConfig(level=logging.INFO, format='{levelname} {asctime} {name}: {message}', style='{')
15
+ logger = logging.getLogger(__name__)
16
+
17
+ API_KEY = os.environ.get("GOOGLE_API_KEY")
18
+
19
+ def initialize_dspy():
20
+ """Configures and returns the DSPy Language Model instance."""
21
+ if not API_KEY:
22
+ logger.error("FATAL: GOOGLE_API_KEY not found. Cannot initialize DSPy.")
23
+ return None
24
+
25
+ try:
26
+ LITELLM_MODEL_STRING = "gemini/gemini-2.5-flash-preview-04-17"
27
+ custom_lm = SyncCustomGeminiDspyLM(
28
+ model=LITELLM_MODEL_STRING,
29
+ api_key=API_KEY,
30
+ temperature=0.7,
31
+ )
32
+ dspy.settings.configure(lm=custom_lm)
33
+ logger.info(f"DSPy configured globally with model: {LITELLM_MODEL_STRING}")
34
+ return custom_lm
35
+ except Exception as e:
36
+ logger.error(f"Fatal error configuring DSPy: {e}")
37
+ return None
38
+
39
+ # --- Application Constants ---
40
+
41
+ # State Keys for managing the conversation state
42
+ STATE_STAGE = "stage"
43
+ STATE_HISTORY = "conversation_history"
44
+ STATE_FINAL_SYLLABUS = "final_syllabus_xml"
45
+ STATE_EXPLAINER_PROMPT = "explainer_system_prompt"
46
+ STATE_EXPLANATION_START_INDEX = "explanation_start_index"
47
+ STATE_CURRENT_TITLE = "current_title" # <-- ADDED
48
+ STATE_GENERATED_TITLE = "generated_title" # <-- ADDED
49
+ STATE_RESOURCE_SUMMARY_OVERVIEW = "resource_summary_overview_for_manager"
50
+ STATE_RESOURCE_TYPE_FOR_SYLLABUS = "resource_type_for_syllabus_gen"
51
+ STATE_RESOURCE_CONTENT_JSON_FOR_SYLLABUS = "resource_content_json_for_syllabus_gen"
52
+
53
+ # Flag Keys for UI updates
54
+ STATE_DISPLAY_SYLLABUS_FLAG = "display_syllabus_flag"
55
+ STATE_TRANSITION_EXPLAINER_FLAG = "transition_to_explainer_flag"
56
+
57
+ # Stage Names
58
+ STAGE_START = "START"
59
+ STAGE_NEGOTIATING = "NEGOTIATING"
60
+ STAGE_EXPLAINING = "EXPLAINING"
61
+ STAGE_ERROR = "ERROR"
62
+ STATE_UPLOADED_FILENAMES = "uploaded_filenames_list"
63
+
64
+ # Chat Logic Constants
65
+ DEFAULT_CHAT_TITLE = "New Chat" # <-- ADDED
66
+ TITLE_GENERATION_THRESHOLD = 4 # <-- ADDED
67
+ TITLE_MAX_HISTORY_SNIPPET_FOR_TITLE = 6 # <-- ADDED