11from typing import List , Union , Iterable
2- from urllib .parse import urlparse , urlunparse
3-
2+ import utils
43from openai import OpenAI
54import minds .utils as utils
65import minds .exceptions as exc
76from minds .datasources import Datasource , DatabaseConfig
87
98DEFAULT_PROMPT_TEMPLATE = 'Use your database tools to answer the user\' s question: {{question}}'
109
11-
1210class Mind :
1311 def __init__ (
1412 self , client , name ,
@@ -33,7 +31,11 @@ def __init__(
3331 self .parameters = parameters
3432 self .created_at = created_at
3533 self .updated_at = updated_at
36-
34+ base_url = utils .get_openai_base_url (self .api .base_url )
35+ self .openai_client = OpenAI (
36+ api_key = self .api .api_key ,
37+ base_url = base_url
38+ )
3739 self .datasources = datasources
3840
3941 def __repr__ (self ):
@@ -157,23 +159,7 @@ def completion(self, message: str, stream: bool = False) -> Union[str, Iterable[
157159
158160 :return: string if stream mode is off or iterator of ChoiceDelta objects (by openai)
159161 """
160- parsed = urlparse (self .api .base_url )
161-
162- netloc = parsed .netloc
163- if netloc == 'mdb.ai' :
164- llm_host = 'llm.mdb.ai'
165- else :
166- llm_host = 'ai.' + netloc
167-
168- parsed = parsed ._replace (path = '' , netloc = llm_host )
169-
170- base_url = urlunparse (parsed )
171- openai_client = OpenAI (
172- api_key = self .api .api_key ,
173- base_url = base_url
174- )
175-
176- response = openai_client .chat .completions .create (
162+ response = self .openai_client .chat .completions .create (
177163 model = self .name ,
178164 messages = [
179165 {'role' : 'user' , 'content' : message }
0 commit comments