Skip to content

Commit 2e994e6

Browse files
committed
revert staging
1 parent fd83443 commit 2e994e6

File tree

1 file changed

+40
-10
lines changed

1 file changed

+40
-10
lines changed

mindsdb_sdk/agents.py

Lines changed: 40 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
from uuid import uuid4
55
import datetime
66
import json
7+
import pandas as pd
78

89
from mindsdb_sdk.databases import Databases
910
from mindsdb_sdk.knowledge_bases import KnowledgeBase, KnowledgeBases
@@ -382,14 +383,50 @@ def add_database(self, name: str, database: str, tables: List[str], description:
382383
agent.skills.append(database_sql_skill)
383384
self.update(agent.name, agent)
384385

386+
def _create_ml_engine_if_not_exists(self, name: str = 'langchain'):
387+
try:
388+
_ = self.ml_engines.get('langchain')
389+
except Exception:
390+
# Create the engine if it doesn't exist.
391+
_ = self.ml_engines.create('langchain', handler='langchain')
392+
393+
def _create_model_if_not_exists(self, name: str, model: Union[Model, dict, str]) -> str:
394+
# Create langchain engine if it doesn't exist.
395+
self._create_ml_engine_if_not_exists()
396+
# Create a default model if it doesn't exist.
397+
default_model_params = {
398+
'predict': 'answer',
399+
'engine': 'langchain',
400+
'prompt_template': 'Answer the user"s question in a helpful way: {{question}}',
401+
# Use GPT-4 by default.
402+
'provider': 'openai',
403+
'model_name': 'gpt-4'
404+
}
405+
406+
if isinstance(model, dict):
407+
default_model_params.update(model)
408+
# Create model with passed in params.
409+
return self.models.create(
410+
f'{name}_default_model',
411+
**default_model_params
412+
).name
413+
414+
if model is None:
415+
# Create model with default params.
416+
return _DEFAULT_LLM_MODEL
417+
418+
if isinstance(model, Model):
419+
return model.name
420+
421+
return model
422+
385423
def create(
386424
self,
387425
name: str,
388426
model: Union[Model, dict, str] = None,
389427
provider: str = None,
390428
skills: List[Union[Skill, str]] = None,
391-
params: dict = None,
392-
**kwargs) -> Agent:
429+
params: dict = None) -> Agent:
393430
"""
394431
Create new agent and return it
395432
@@ -412,14 +449,7 @@ def create(
412449
_ = self.skills.create(skill.name, skill.type, skill.params)
413450
skill_names.append(skill.name)
414451

415-
if model is None:
416-
model = _DEFAULT_LLM_MODEL
417-
418-
if params is None:
419-
params = {}
420-
params.update(kwargs)
421-
if 'prompt_template' not in params:
422-
params['prompt_template'] = 'Answer the user"s question in a helpful way: {{question}}'
452+
model = self._create_model_if_not_exists(name, model)
423453

424454
data = self.api.create_agent(self.project, name, model, provider, skill_names, params)
425455
return Agent.from_json(data, self)

0 commit comments

Comments
 (0)