File size: 2,347 Bytes
5fead74
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
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}"