Precision_Care / components /api_manager.py
Ashar086's picture
Create components/api_manager.py
5fead74 verified
import os
import requests
class APIManager:
def __init__(self):
self.minds_api_key = os.getenv('MINDSDB_API_KEY')
self.supabase_password = os.getenv('SUPABASE_PASSWORD')
self.minds_name = 'precision_medicine_mind'
self.headers = {
'Authorization': f'Bearer {self.minds_api_key}',
'Content-Type': 'application/json'
}
def create_mind(self):
supabase_config = {
"description": "Your Supabase Database",
"type": "postgres",
"connection_args": {
"user": "postgres.mgvepfrmsojwkoudycez",
"password": self.supabase_password,
"host": "aws-0-ap-southeast-1.pooler.supabase.com",
"port": "6543",
"database": "postgres"
},
"tables": ["Precision_medicine"]
}
payload = {
"name": self.minds_name,
"data_source_configs": [supabase_config]
}
try:
response = requests.post(
url='https://llm.mdb.ai/minds',
json=payload,
headers=self.headers
)
if response.status_code == 201:
return f"Mind '{self.minds_name}' created successfully!"
else:
return "Mind already exists"
except requests.exceptions.HTTPError as http_err:
return f"HTTP error occurred: {http_err}"
except Exception as e:
return f"An error occurred: {e}"
def query_mind(self, query):
query_payload = {
"model": self.minds_name,
"messages": [
{"role": "user", "content": query}
]
}
try:
query_response = requests.post(
url='https://llm.mdb.ai/chat/completions',
json=query_payload,
headers=self.headers
)
if query_response.status_code == 200:
response_data = query_response.json()
return response_data['choices'][0]['message']['content']
else:
return f"Error querying the Mind: {query_response.status_code} - {query_response.text}"
except Exception as e:
return f"Error querying the Mind: {e}"