* return empty when unable to find object.

This commit is contained in:
liwenrui
2023-07-24 15:11:01 +08:00
parent 2dc0582830
commit b12b916880
2 changed files with 18 additions and 5 deletions
+7 -1
View File
@@ -466,7 +466,13 @@ class ai extends control
$this->sendSuccess($response);
}
list($objectData, $object) = $this->ai->getObjectForPromptById($prompt, $objectId);
$objectForPrompt = $this->ai->getObjectForPromptById($prompt, $objectId);
if(empty($objectForPrompt))
{
// TODO(chenjianyu): handle empty object.
}
list($objectData, $object) = $objectForPrompt;
$this->view->prompt = $prompt;
$this->view->object = $object;
+11 -4
View File
@@ -516,6 +516,8 @@ class aiModel extends model
*/
public function serializeDataToPrompt($module, $sources, $data)
{
if(empty($data)) return '';
/* Handle object data. */
if(is_object($data)) $data = (array)$data;
@@ -645,10 +647,10 @@ class aiModel extends model
/**
* Get object data for prompt by id.
*
* @param object $prompt
* @param int $objectId
* @param object $prompt prompt object
* @param int $objectId object id
* @access public
* @return object
* @return array|false array of object data and object, or false if error.
*/
public function getObjectForPromptById($prompt, $objectId)
{
@@ -680,6 +682,8 @@ class aiModel extends model
if(isset($sourceGroups['tasks'])) $object->tasks = $this->loadModel('task')->getExecutionTasks($objectId);
}
if(empty(get_object_vars($object))) return false;
/* Format data as per data source definitions. */
foreach($sourceGroups as $objectName => $objectKeys)
{
@@ -771,7 +775,10 @@ class aiModel extends model
if(is_numeric($prompt)) $prompt = $this->getPromptById($prompt);
if(empty($prompt)) return false;
list($objectData) = $this->getObjectForPromptById($prompt, $objectId);
$objectForPrompt = $this->getObjectForPromptById($prompt, $objectId);
if(empty($objectForPrompt)) return false;
list($objectData) = $objectForPrompt;
$dataPrompt = $this->serializeDataToPrompt($prompt->module, $prompt->source, $objectData);
$wholePrompt = $this->assemblePrompt($prompt, $dataPrompt);