minhhungg commited on
Commit
ba7468f
·
1 Parent(s): 45466f9
Files changed (1) hide show
  1. agents.py +21 -33
agents.py CHANGED
@@ -5,18 +5,14 @@ import json
5
 
6
  logger = logging.getLogger(__name__)
7
 
8
- # Try both import methods with proper error handling and model access
9
  try:
10
  import google.generativeai as genai
11
  GENAI_PACKAGE = "generativeai"
12
- MODEL_CLASS = genai.GenerativeModel
13
  except ImportError:
14
  try:
15
  import google.genai as genai
16
  GENAI_PACKAGE = "genai"
17
- def create_model(model_name):
18
- return genai.get_model(model_name) # Using get_model instead of accessing models directly
19
- MODEL_CLASS = create_model
20
  except ImportError:
21
  logger.error("Failed to import Google AI package")
22
  raise
@@ -31,14 +27,13 @@ class BaseAgent:
31
  if not api_key:
32
  raise ValueError("Gemini API key is required when use_gemini=True")
33
 
34
- try:
35
- if GENAI_PACKAGE == "generativeai":
 
 
36
  genai.configure(api_key=api_key)
37
- else:
38
- os.environ["GOOGLE_API_KEY"] = api_key
39
- except Exception as e:
40
- logger.warning(f"Using fallback configuration method: {str(e)}")
41
- os.environ["GOOGLE_API_KEY"] = api_key
42
 
43
  self.gemini_model = gemini_model or "gemini-1.5-pro"
44
  else:
@@ -50,30 +45,23 @@ class BaseAgent:
50
 
51
  def _generate_with_gemini(self, prompt: str, system_prompt: str) -> str:
52
  try:
 
 
53
  if GENAI_PACKAGE == "generativeai":
54
- model = MODEL_CLASS(model_name=self.gemini_model)
 
 
 
 
55
  else:
56
- model = MODEL_CLASS(self.gemini_model)
57
-
58
- combined_prompt = f"System: {system_prompt}\n\nUser: {prompt}"
 
 
 
59
 
60
- try:
61
- if GENAI_PACKAGE == "generativeai":
62
- response = model.generate_content(
63
- combined_prompt,
64
- generation_config={"temperature": 0.1}
65
- )
66
- else:
67
- response = model.generate_text(combined_prompt)
68
-
69
- return response.text if hasattr(response, 'text') else str(response)
70
- except AttributeError:
71
- # Fallback for different response formats
72
- if GENAI_PACKAGE == "generativeai":
73
- response = model.generate_content(combined_prompt)
74
- else:
75
- response = model.generate_text(combined_prompt)
76
- return response.text if hasattr(response, 'text') else str(response)
77
 
78
  except Exception as e:
79
  logger.error(f"Gemini generation failed: {str(e)}")
 
5
 
6
  logger = logging.getLogger(__name__)
7
 
8
+ # Try both import methods with proper error handling
9
  try:
10
  import google.generativeai as genai
11
  GENAI_PACKAGE = "generativeai"
 
12
  except ImportError:
13
  try:
14
  import google.genai as genai
15
  GENAI_PACKAGE = "genai"
 
 
 
16
  except ImportError:
17
  logger.error("Failed to import Google AI package")
18
  raise
 
27
  if not api_key:
28
  raise ValueError("Gemini API key is required when use_gemini=True")
29
 
30
+ # Set API key for either package version
31
+ os.environ["GOOGLE_API_KEY"] = api_key
32
+ if GENAI_PACKAGE == "generativeai":
33
+ try:
34
  genai.configure(api_key=api_key)
35
+ except Exception as e:
36
+ logger.warning(f"Fallback to environment variable: {str(e)}")
 
 
 
37
 
38
  self.gemini_model = gemini_model or "gemini-1.5-pro"
39
  else:
 
45
 
46
  def _generate_with_gemini(self, prompt: str, system_prompt: str) -> str:
47
  try:
48
+ combined_prompt = f"System: {system_prompt}\n\nUser: {prompt}"
49
+
50
  if GENAI_PACKAGE == "generativeai":
51
+ model = genai.GenerativeModel(model_name=self.gemini_model)
52
+ response = model.generate_content(
53
+ combined_prompt,
54
+ generation_config={"temperature": 0.1}
55
+ )
56
  else:
57
+ # Use basic text generation for google.genai
58
+ completion = genai.generate_text(
59
+ model=self.gemini_model,
60
+ prompt=combined_prompt
61
+ )
62
+ return str(completion)
63
 
64
+ return response.text if hasattr(response, 'text') else str(response)
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
65
 
66
  except Exception as e:
67
  logger.error(f"Gemini generation failed: {str(e)}")