Update notes/llm_notes_generator.py

#16
Files changed (1) hide show
  1. notes/llm_notes_generator.py +17 -22
notes/llm_notes_generator.py CHANGED
@@ -1,13 +1,3 @@
1
- class FlexibleFinancialNoteGenerator:
2
- def __init__(self):
3
- pass
4
-
5
- def generate_note(self, note_number, trial_balance_path=None):
6
- return True
7
-
8
- def generate_all_notes(self, trial_balance_path=None):
9
- return {"dummy": True}
10
-
11
  import json
12
  import os
13
  import logging
@@ -19,7 +9,7 @@ import re
19
  import sys
20
  from typing import Dict, List, Any, Optional, Tuple
21
  import pandas as pd
22
- from pydantic import BaseModel, ValidationError
23
  from pydantic_settings import BaseSettings
24
  sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
25
  from utils.utils import convert_note_json_to_lakhs
@@ -30,10 +20,13 @@ logging.basicConfig(level=logging.INFO)
30
  logger = logging.getLogger(__name__)
31
 
32
  class Settings(BaseSettings):
33
- openrouter_api_key: str = os.getenv('OPENROUTER_API_KEY', '')
34
  api_url: str = "https://openrouter.ai/api/v1/chat/completions"
35
  output_dir: str = "data/generated_notes"
36
  trial_balance_json: str = "data/output1/parsed_trial_balance.json"
 
 
 
 
37
 
38
  settings = Settings()
39
 
@@ -55,15 +48,11 @@ class GeneratedNote(BaseModel):
55
 
56
  class FlexibleFinancialNoteGenerator:
57
  def __init__(self, user_api_key: Optional[str] = None):
58
- if user_api_key:
59
- self.openrouter_api_key = user_api_key
60
- logger.info("Using user-provided API key")
61
- else:
62
- self.openrouter_api_key = settings.openrouter_api_key
63
- if not self.openrouter_api_key:
64
- logger.error("OpenRouter API key not found. Please provide a valid OPENROUTER_API_KEY.")
65
- raise ValueError("OpenRouter API key not found. Please provide a valid OPENROUTER_API_KEY.")
66
- logger.info("Using API key from .env file")
67
 
68
  self.api_url = settings.api_url
69
  self.headers = {
@@ -772,7 +761,13 @@ GENERATE VALID JSON NOW (NO ADDITIONAL TEXT):"""
772
 
773
  def main() -> None:
774
  try:
775
- generator = FlexibleFinancialNoteGenerator()
 
 
 
 
 
 
776
  if not generator.note_templates:
777
  logger.error("No note templates loaded. Check notes_template.py")
778
  return
 
 
 
 
 
 
 
 
 
 
 
1
  import json
2
  import os
3
  import logging
 
9
  import sys
10
  from typing import Dict, List, Any, Optional, Tuple
11
  import pandas as pd
12
+ from pydantic import BaseModel, Field, ValidationError
13
  from pydantic_settings import BaseSettings
14
  sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
15
  from utils.utils import convert_note_json_to_lakhs
 
20
  logger = logging.getLogger(__name__)
21
 
22
  class Settings(BaseSettings):
 
23
  api_url: str = "https://openrouter.ai/api/v1/chat/completions"
24
  output_dir: str = "data/generated_notes"
25
  trial_balance_json: str = "data/output1/parsed_trial_balance.json"
26
+
27
+ model_config = {
28
+ "extra": "ignore"
29
+ }
30
 
31
  settings = Settings()
32
 
 
48
 
49
  class FlexibleFinancialNoteGenerator:
50
  def __init__(self, user_api_key: Optional[str] = None):
51
+ if not user_api_key:
52
+ logger.error("OpenRouter API key is required. Please provide OPENROUTER_API_KEY.")
53
+ raise ValueError("OpenRouter API key is required. Please provide OPENROUTER_API_KEY.")
54
+ self.openrouter_api_key = user_api_key
55
+ logger.info("Using provided OpenRouter API key")
 
 
 
 
56
 
57
  self.api_url = settings.api_url
58
  self.headers = {
 
761
 
762
  def main() -> None:
763
  try:
764
+ # Get API key from environment
765
+ user_api_key = os.environ.get("OPENROUTER_API_KEY")
766
+ if not user_api_key:
767
+ logger.error("OpenRouter API key is required. Please provide OPENROUTER_API_KEY.")
768
+ sys.exit(1)
769
+
770
+ generator = FlexibleFinancialNoteGenerator(user_api_key=user_api_key)
771
  if not generator.note_templates:
772
  logger.error("No note templates loaded. Check notes_template.py")
773
  return