adsurkasur commited on
Commit
899c2a1
Β·
1 Parent(s): f13a869

Remove Gemini API integration and related functionality from embedding and fact extraction modules

Browse files
app/core/embedding.py DELETED
@@ -1,25 +0,0 @@
1
- import os
2
-
3
- # Replace local embedding model with Gemini API integration
4
- GEMINI_API_KEY = os.getenv("GEMINI_API_KEY", "")
5
-
6
- if not GEMINI_API_KEY:
7
- raise ValueError("❌ Gemini API Key (GEMINI_API_KEY) has not been set yet")
8
-
9
- def generate_embedding(texts: list):
10
- import requests
11
- url = f"https://generativelanguage.googleapis.com/v1beta/models/gemini-2.0-flash:generateContent?key={GEMINI_API_KEY}"
12
- headers = {"Content-Type": "application/json"}
13
- payload = {
14
- "contents": [{"parts": [{"text": text}]} for text in texts]
15
- }
16
-
17
- try:
18
- response = requests.post(url, headers=headers, json=payload)
19
- response.raise_for_status()
20
- data = response.json()
21
- # Parse embeddings from the response (adjust based on Gemini API's actual response structure)
22
- return [item.get("embedding", []) for item in data.get("contents", [])]
23
- except Exception as e:
24
- print(f"Error generating embedding via Gemini API: {e}")
25
- return None
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
app/core/fact_extraction.py DELETED
@@ -1,55 +0,0 @@
1
- import os
2
- from app.core.device_setup import device
3
- from app.core.fact_management import save_user_fact
4
- from app.core.logging_setup import logger
5
-
6
- # Replace local model loading with Gemini API integration
7
- GEMINI_API_KEY = os.getenv("GEMINI_API_KEY", "")
8
-
9
- if not GEMINI_API_KEY:
10
- raise ValueError("❌ Gemini API Key (GEMINI_API_KEY) has not been set yet")
11
-
12
- def query_gemini_for_entities(text: str):
13
- import requests
14
- url = f"https://generativelanguage.googleapis.com/v1beta/models/gemini-2.0-flash:generateContent?key={GEMINI_API_KEY}"
15
- headers = {"Content-Type": "application/json"}
16
- payload = {
17
- "contents": [{"parts": [{"text": text}]}]
18
- }
19
-
20
- try:
21
- response = requests.post(url, headers=headers, json=payload)
22
- response.raise_for_status()
23
- data = response.json()
24
- # Parse entities from the response (adjust based on Gemini API's actual response structure)
25
- return data.get("entities", [])
26
- except Exception as e:
27
- logger.error(f"🚨 Error querying Gemini API for entities: {e}")
28
- return []
29
-
30
- # Replace the NLP pipeline with Gemini API calls
31
- def extract_and_store_facts(message):
32
- entities = query_gemini_for_entities(message)
33
-
34
- # Extract name
35
- name = next((entity['name'] for entity in entities if entity.get('type') == 'PERSON'), None)
36
- if name:
37
- save_user_fact("name", name)
38
- logger.info(f"User name '{name}' stored in memory.")
39
-
40
- # Extract location
41
- location = next((entity['name'] for entity in entities if entity.get('type') == 'LOCATION'), None)
42
- if location:
43
- save_user_fact("location", location)
44
- logger.info(f"User location '{location}' stored in memory.")
45
-
46
- # Extract hobbies (simple keyword detection)
47
- hobbies = []
48
- hobby_keywords = ["love", "enjoy", "like", "hobby", "passion"]
49
- for token in message.split():
50
- if token.lower() in hobby_keywords:
51
- hobbies.append(token)
52
-
53
- if hobbies:
54
- save_user_fact("hobbies", ", ".join(hobbies))
55
- logger.info(f"User hobbies '{', '.join(hobbies)}' stored in memory.")
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
app/main_hf.py CHANGED
@@ -1,4 +1,3 @@
1
- import os
2
  from dotenv import load_dotenv
3
  load_dotenv()
4
 
 
 
1
  from dotenv import load_dotenv
2
  load_dotenv()
3
 
app/routes/chat_hf.py CHANGED
@@ -6,7 +6,6 @@ from datetime import datetime, timezone
6
  from app.core.device_setup import device
7
  from app.core.message_saving import save_message
8
  from app.core.past_conversations import get_past_conversations
9
- from app.core.fact_extraction import extract_and_store_facts
10
  from app.core.memory_management import reset_memory, get_last_interaction, update_last_interaction
11
  from app.core.fact_management import get_user_fact, save_user_fact
12
  from app.core.conversation_retrieval import get_similar_conversations
@@ -40,16 +39,18 @@ def query_gemini_api(prompt: str) -> str:
40
  url = f"https://generativelanguage.googleapis.com/v1beta/models/gemini-2.0-flash:generateContent?key={GEMINI_API_KEY}"
41
  headers = {"Content-Type": "application/json"}
42
  payload = {
43
- "contents": [{"parts": [{"text": prompt}]}]
 
 
44
  }
45
 
46
  try:
47
  response = requests.post(url, headers=headers, json=payload)
48
  response.raise_for_status()
49
  data = response.json()
50
- return data.get("contents", [{}])[0].get("parts", [{}])[0].get("text", "")
51
- except Exception as e:
52
- logger.error(f"🚨 Error querying Gemini API: {e}")
53
  return "⚠️ An error occurred while generating a response."
54
 
55
  # Replace generate_response and query_huggingface with query_gemini_api
@@ -140,8 +141,7 @@ async def chat_with_arina(request: Request, request_body: ChatRequest):
140
  reset_memory()
141
  return {"response": "βœ… Memory wiped."}
142
 
143
- # Extract facts and retrieve user-specific data
144
- extract_and_store_facts(user_input)
145
  user_name = get_user_fact("name")
146
 
147
  # Retrieve past relevant conversations
 
6
  from app.core.device_setup import device
7
  from app.core.message_saving import save_message
8
  from app.core.past_conversations import get_past_conversations
 
9
  from app.core.memory_management import reset_memory, get_last_interaction, update_last_interaction
10
  from app.core.fact_management import get_user_fact, save_user_fact
11
  from app.core.conversation_retrieval import get_similar_conversations
 
39
  url = f"https://generativelanguage.googleapis.com/v1beta/models/gemini-2.0-flash:generateContent?key={GEMINI_API_KEY}"
40
  headers = {"Content-Type": "application/json"}
41
  payload = {
42
+ "prompt": {"text": prompt},
43
+ "temperature": 0.7,
44
+ "maxOutputTokens": 256
45
  }
46
 
47
  try:
48
  response = requests.post(url, headers=headers, json=payload)
49
  response.raise_for_status()
50
  data = response.json()
51
+ return data.get("candidates", [{}])[0].get("output", "")
52
+ except requests.exceptions.RequestException as e:
53
+ logger.error(f"🚨 Error querying Gemini API: {e}, Response: {response.text if 'response' in locals() else 'No response'}")
54
  return "⚠️ An error occurred while generating a response."
55
 
56
  # Replace generate_response and query_huggingface with query_gemini_api
 
141
  reset_memory()
142
  return {"response": "βœ… Memory wiped."}
143
 
144
+ # Retrieve user-specific data
 
145
  user_name = get_user_fact("name")
146
 
147
  # Retrieve past relevant conversations