Spaces:
Runtime error
Runtime error
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 +0 -25
- app/core/fact_extraction.py +0 -55
- app/main_hf.py +0 -1
- app/routes/chat_hf.py +7 -7
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 |
-
"
|
|
|
|
|
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("
|
51 |
-
except
|
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 |
-
#
|
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
|