diff --git a/web/src/api/prompt.ts b/web/src/api/prompt.ts
index 526f50ac..79ea374c 100644
--- a/web/src/api/prompt.ts
+++ b/web/src/api/prompt.ts
@@ -1,13 +1,26 @@
import { request } from '@/utils/request'
import type { AiPromptForm } from '@/views/ApplicationConfig/types'
+import type { PromptReleaseData } from '@/views/Prompt/types'
import { handleSSE, type SSEMessage } from '@/utils/stream'
+// Create session
export const createPromptSessions = () => {
return request.post(`/prompt/sessions`)
}
-export const getPrompt = (session_id: string) => {
- return request.get(`/prompt/sessions/${session_id}`)
-}
+// Get prompt optimization
export const updatePromptMessages = (session_id: string, data: AiPromptForm, onMessage?: (data: SSEMessage[]) => void) => {
return handleSSE(`/prompt/sessions/${session_id}/messages`, data, onMessage)
+}
+// Prompt release list
+export const getPromptReleaseListUrl = '/prompt/releases/list'
+export const getPromptReleaseList = () => {
+ return request.get(getPromptReleaseListUrl)
+}
+// Save prompt
+export const savePrompt = (data: PromptReleaseData) => {
+ return request.post('/prompt/releases', data)
+}
+// Delete prompt
+export const deletePrompt = (prompt_id: string) => {
+ return request.delete(`/prompt/releases/${prompt_id}`)
}
\ No newline at end of file
diff --git a/web/src/assets/images/menu/prompt.svg b/web/src/assets/images/menu/prompt.svg
new file mode 100644
index 00000000..ffef9a34
--- /dev/null
+++ b/web/src/assets/images/menu/prompt.svg
@@ -0,0 +1,15 @@
+
+
\ No newline at end of file
diff --git a/web/src/assets/images/menu/prompt_active.svg b/web/src/assets/images/menu/prompt_active.svg
new file mode 100644
index 00000000..ac45e13c
--- /dev/null
+++ b/web/src/assets/images/menu/prompt_active.svg
@@ -0,0 +1,15 @@
+
+
\ No newline at end of file
diff --git a/web/src/components/Markdown/index.tsx b/web/src/components/Markdown/index.tsx
index 58650207..6737f15a 100644
--- a/web/src/components/Markdown/index.tsx
+++ b/web/src/components/Markdown/index.tsx
@@ -19,6 +19,7 @@ interface RbMarkdownProps {
showHtmlComments?: boolean; // 是否显示 HTML 注释,默认为 false(隐藏)
editable?: boolean; // 是否可编辑,默认为 false
onContentChange?: (content: string) => void; // 内容变化回调
+ className?: string;
}
const components = {
@@ -98,6 +99,7 @@ const RbMarkdown: FC = ({
showHtmlComments = false,
editable = false,
onContentChange,
+ className
}) => {
const [editContent, setEditContent] = useState(content)
const textareaRef = useRef(null)
@@ -162,7 +164,7 @@ const RbMarkdown: FC = ({
// 预览模式
return (
-