ErNewdev0 commited on
Commit
b911cd8
·
verified ·
1 Parent(s): 2ecdd91

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +27 -10
app.py CHANGED
@@ -22,8 +22,7 @@ CURRENT_USER = os.getenv("USER", "ErRickow")
22
 
23
  # Default API Keys (fallback if user doesn't provide their own)
24
  DEFAULT_XAI_KEY = os.getenv(
25
- "XAI_API_KEY",
26
- "xai-vfjhklL384Z4HKdItsZomqpFlXubTZJAFnISQUpV7dE8lRnWwYBVPSCxSTlu08wDbAcv720bx2dDiQ9x",
27
  )
28
  DEFAULT_GEMINI_KEY = os.getenv("GEMINI_API_KEY")
29
  GEMINI_BASE_URL = "https://generativelanguage.googleapis.com/v1beta/openai/"
@@ -121,8 +120,11 @@ async def get_available_models(provider: str, api_key: str = None) -> List[str]:
121
  if provider == AIProvider.XAI:
122
  if not api_key and not DEFAULT_XAI_KEY:
123
  return ["grok-2-latest"], "⚠️ API Key diperlukan untuk mendapatkan daftar model lengkap"
124
-
125
- client = AsyncOpenAI(api_key=api_key or DEFAULT_XAI_KEY, base_url=XAI_BASE_URL)
 
 
 
126
  models = await client.models.list()
127
  available_models = [m.id for m in models.data if "grok" in m.id.lower()]
128
  return available_models, None
@@ -130,16 +132,32 @@ async def get_available_models(provider: str, api_key: str = None) -> List[str]:
130
  elif provider == AIProvider.GEMINI:
131
  if not api_key and not DEFAULT_GEMINI_KEY:
132
  return ["gemini-pro"], "⚠️ API Key diperlukan untuk mendapatkan daftar model lengkap"
133
-
134
- genai.configure(api_key=api_key or DEFAULT_GEMINI_KEY)
135
- models = [m.name for m in genai.list_models() if "gemini" in m.name.lower()]
136
- return models, None
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
137
 
138
  else: # OLLAMA
139
  try:
140
  response = requests.get(f"{OLLAMA_API}/api/tags")
141
  if response.status_code == 200:
142
- models = [m["name"] for m in response.json()["models"]]
143
  return models, None
144
  return ["llama2"], f"⚠️ Error mengakses Ollama API: {response.status_code}"
145
  except Exception as e:
@@ -148,7 +166,6 @@ async def get_available_models(provider: str, api_key: str = None) -> List[str]:
148
  except Exception as e:
149
  return [], f"⚠️ Error mendapatkan daftar model: {str(e)}"
150
 
151
-
152
  class AIProvider:
153
  OLLAMA = "ollama"
154
  GEMINI = "gemini"
 
22
 
23
  # Default API Keys (fallback if user doesn't provide their own)
24
  DEFAULT_XAI_KEY = os.getenv(
25
+ "XAI_API_KEY"
 
26
  )
27
  DEFAULT_GEMINI_KEY = os.getenv("GEMINI_API_KEY")
28
  GEMINI_BASE_URL = "https://generativelanguage.googleapis.com/v1beta/openai/"
 
120
  if provider == AIProvider.XAI:
121
  if not api_key and not DEFAULT_XAI_KEY:
122
  return ["grok-2-latest"], "⚠️ API Key diperlukan untuk mendapatkan daftar model lengkap"
123
+
124
+ client = AsyncOpenAI(
125
+ api_key=api_key or DEFAULT_XAI_KEY,
126
+ base_url=XAI_BASE_URL
127
+ )
128
  models = await client.models.list()
129
  available_models = [m.id for m in models.data if "grok" in m.id.lower()]
130
  return available_models, None
 
132
  elif provider == AIProvider.GEMINI:
133
  if not api_key and not DEFAULT_GEMINI_KEY:
134
  return ["gemini-pro"], "⚠️ API Key diperlukan untuk mendapatkan daftar model lengkap"
135
+
136
+ client = AsyncOpenAI(
137
+ api_key=api_key or DEFAULT_GEMINI_KEY,
138
+ base_url=GEMINI_BASE_URL
139
+ )
140
+ try:
141
+ models = await client.models.list()
142
+ available_models = []
143
+ if hasattr(models, 'data'):
144
+ for model in models.data:
145
+ if "gemini" in model.id.lower():
146
+ # Remove 'models/' prefix if exists
147
+ model_name = model.id.replace("models/", "")
148
+ available_models.append(model_name)
149
+
150
+ if not available_models: # Fallback if no models found
151
+ available_models = GEMINI_MODELS
152
+ return available_models, None
153
+ except Exception as e:
154
+ return GEMINI_MODELS, f"⚠️ Error listing models: {str(e)}"
155
 
156
  else: # OLLAMA
157
  try:
158
  response = requests.get(f"{OLLAMA_API}/api/tags")
159
  if response.status_code == 200:
160
+ models = [m['name'] for m in response.json()['models']]
161
  return models, None
162
  return ["llama2"], f"⚠️ Error mengakses Ollama API: {response.status_code}"
163
  except Exception as e:
 
166
  except Exception as e:
167
  return [], f"⚠️ Error mendapatkan daftar model: {str(e)}"
168
 
 
169
  class AIProvider:
170
  OLLAMA = "ollama"
171
  GEMINI = "gemini"