feat: prompt from station
This commit is contained in:
@@ -164,7 +164,7 @@ class TerminalResource extends Resource
|
||||
->schema([
|
||||
Forms\Components\Grid::make(3)
|
||||
->schema([
|
||||
\AbdelhamidErrahmouni\FilamentMonacoEditor\MonacoEditor::make('prompt.prompt_template')
|
||||
\AbdelhamidErrahmouni\FilamentMonacoEditor\MonacoEditor::make('prompt_template')
|
||||
->label('提示词模板')
|
||||
->language('markdown')
|
||||
->fontSize('14px')
|
||||
|
||||
@@ -18,26 +18,4 @@ class CreateTerminal extends CreateRecord
|
||||
{
|
||||
return '终端创建成功';
|
||||
}
|
||||
|
||||
protected function mutateFormDataBeforeCreate(array $data): array
|
||||
{
|
||||
// 提取提示词数据,稍后单独处理
|
||||
$this->promptData = $data['prompt'] ?? null;
|
||||
unset($data['prompt']);
|
||||
|
||||
return $data;
|
||||
}
|
||||
|
||||
protected function afterCreate(): void
|
||||
{
|
||||
// 创建终端后,创建或更新提示词
|
||||
if (!empty($this->promptData['prompt_template'])) {
|
||||
$this->record->prompt()->create([
|
||||
'prompt_template' => $this->promptData['prompt_template'],
|
||||
'variables' => $this->promptData['variables'] ?? [],
|
||||
]);
|
||||
}
|
||||
}
|
||||
|
||||
private ?array $promptData = null;
|
||||
}
|
||||
|
||||
@@ -29,45 +29,4 @@ class EditTerminal extends EditRecord
|
||||
{
|
||||
return '终端更新成功';
|
||||
}
|
||||
|
||||
protected function mutateFormDataBeforeFill(array $data): array
|
||||
{
|
||||
// 加载提示词数据到表单
|
||||
if ($this->record->prompt) {
|
||||
$data['prompt'] = [
|
||||
'prompt_template' => $this->record->prompt->prompt_template,
|
||||
'variables' => $this->record->prompt->variables,
|
||||
];
|
||||
}
|
||||
|
||||
return $data;
|
||||
}
|
||||
|
||||
protected function mutateFormDataBeforeSave(array $data): array
|
||||
{
|
||||
// 提取提示词数据,稍后单独处理
|
||||
$this->promptData = $data['prompt'] ?? null;
|
||||
unset($data['prompt']);
|
||||
|
||||
return $data;
|
||||
}
|
||||
|
||||
protected function afterSave(): void
|
||||
{
|
||||
// 更新或创建提示词
|
||||
if (!empty($this->promptData['prompt_template'])) {
|
||||
$this->record->prompt()->updateOrCreate(
|
||||
['terminal_id' => $this->record->id],
|
||||
[
|
||||
'prompt_template' => $this->promptData['prompt_template'],
|
||||
'variables' => $this->promptData['variables'] ?? [],
|
||||
]
|
||||
);
|
||||
} elseif ($this->record->prompt) {
|
||||
// 如果提示词模板为空,删除现有提示词
|
||||
$this->record->prompt()->delete();
|
||||
}
|
||||
}
|
||||
|
||||
private ?array $promptData = null;
|
||||
}
|
||||
|
||||
@@ -62,7 +62,7 @@ class ViewTerminal extends ViewRecord
|
||||
|
||||
Infolists\Components\Section::make('AI提示词配置')
|
||||
->schema([
|
||||
Infolists\Components\TextEntry::make('prompt.prompt_template')
|
||||
Infolists\Components\TextEntry::make('prompt_template')
|
||||
->label('提示词模板')
|
||||
->markdown()
|
||||
->placeholder('未配置提示词'),
|
||||
|
||||
Reference in New Issue
Block a user