mirror of
https://git.mirrors.martin98.com/https://github.com/open-webui/open-webui
synced 2025-08-19 00:05:58 +08:00
enh: custom code interpreter prompt
This commit is contained in:
parent
953e408077
commit
f916fbba56
@ -1342,6 +1342,12 @@ CODE_INTERPRETER_ENGINE = PersistentConfig(
|
|||||||
os.environ.get("CODE_INTERPRETER_ENGINE", "pyodide"),
|
os.environ.get("CODE_INTERPRETER_ENGINE", "pyodide"),
|
||||||
)
|
)
|
||||||
|
|
||||||
|
CODE_INTERPRETER_PROMPT_TEMPLATE = PersistentConfig(
|
||||||
|
"CODE_INTERPRETER_PROMPT_TEMPLATE",
|
||||||
|
"code_interpreter.prompt_template",
|
||||||
|
os.environ.get("CODE_INTERPRETER_PROMPT_TEMPLATE", ""),
|
||||||
|
)
|
||||||
|
|
||||||
CODE_INTERPRETER_JUPYTER_URL = PersistentConfig(
|
CODE_INTERPRETER_JUPYTER_URL = PersistentConfig(
|
||||||
"CODE_INTERPRETER_JUPYTER_URL",
|
"CODE_INTERPRETER_JUPYTER_URL",
|
||||||
"code_interpreter.jupyter.url",
|
"code_interpreter.jupyter.url",
|
||||||
|
@ -100,6 +100,7 @@ from open_webui.config import (
|
|||||||
# Code Interpreter
|
# Code Interpreter
|
||||||
ENABLE_CODE_INTERPRETER,
|
ENABLE_CODE_INTERPRETER,
|
||||||
CODE_INTERPRETER_ENGINE,
|
CODE_INTERPRETER_ENGINE,
|
||||||
|
CODE_INTERPRETER_PROMPT_TEMPLATE,
|
||||||
CODE_INTERPRETER_JUPYTER_URL,
|
CODE_INTERPRETER_JUPYTER_URL,
|
||||||
CODE_INTERPRETER_JUPYTER_AUTH,
|
CODE_INTERPRETER_JUPYTER_AUTH,
|
||||||
CODE_INTERPRETER_JUPYTER_AUTH_TOKEN,
|
CODE_INTERPRETER_JUPYTER_AUTH_TOKEN,
|
||||||
@ -591,6 +592,7 @@ app.state.EMBEDDING_FUNCTION = get_embedding_function(
|
|||||||
|
|
||||||
app.state.config.ENABLE_CODE_INTERPRETER = ENABLE_CODE_INTERPRETER
|
app.state.config.ENABLE_CODE_INTERPRETER = ENABLE_CODE_INTERPRETER
|
||||||
app.state.config.CODE_INTERPRETER_ENGINE = CODE_INTERPRETER_ENGINE
|
app.state.config.CODE_INTERPRETER_ENGINE = CODE_INTERPRETER_ENGINE
|
||||||
|
app.state.config.CODE_INTERPRETER_PROMPT_TEMPLATE = CODE_INTERPRETER_PROMPT_TEMPLATE
|
||||||
|
|
||||||
app.state.config.CODE_INTERPRETER_JUPYTER_URL = CODE_INTERPRETER_JUPYTER_URL
|
app.state.config.CODE_INTERPRETER_JUPYTER_URL = CODE_INTERPRETER_JUPYTER_URL
|
||||||
app.state.config.CODE_INTERPRETER_JUPYTER_AUTH = CODE_INTERPRETER_JUPYTER_AUTH
|
app.state.config.CODE_INTERPRETER_JUPYTER_AUTH = CODE_INTERPRETER_JUPYTER_AUTH
|
||||||
|
@ -42,6 +42,7 @@ async def export_config(user=Depends(get_admin_user)):
|
|||||||
class CodeInterpreterConfigForm(BaseModel):
|
class CodeInterpreterConfigForm(BaseModel):
|
||||||
ENABLE_CODE_INTERPRETER: bool
|
ENABLE_CODE_INTERPRETER: bool
|
||||||
CODE_INTERPRETER_ENGINE: str
|
CODE_INTERPRETER_ENGINE: str
|
||||||
|
CODE_INTERPRETER_PROMPT_TEMPLATE: Optional[str]
|
||||||
CODE_INTERPRETER_JUPYTER_URL: Optional[str]
|
CODE_INTERPRETER_JUPYTER_URL: Optional[str]
|
||||||
CODE_INTERPRETER_JUPYTER_AUTH: Optional[str]
|
CODE_INTERPRETER_JUPYTER_AUTH: Optional[str]
|
||||||
CODE_INTERPRETER_JUPYTER_AUTH_TOKEN: Optional[str]
|
CODE_INTERPRETER_JUPYTER_AUTH_TOKEN: Optional[str]
|
||||||
@ -53,6 +54,7 @@ async def get_code_interpreter_config(request: Request, user=Depends(get_admin_u
|
|||||||
return {
|
return {
|
||||||
"ENABLE_CODE_INTERPRETER": request.app.state.config.ENABLE_CODE_INTERPRETER,
|
"ENABLE_CODE_INTERPRETER": request.app.state.config.ENABLE_CODE_INTERPRETER,
|
||||||
"CODE_INTERPRETER_ENGINE": request.app.state.config.CODE_INTERPRETER_ENGINE,
|
"CODE_INTERPRETER_ENGINE": request.app.state.config.CODE_INTERPRETER_ENGINE,
|
||||||
|
"CODE_INTERPRETER_PROMPT_TEMPLATE": request.app.state.config.CODE_INTERPRETER_PROMPT_TEMPLATE,
|
||||||
"CODE_INTERPRETER_JUPYTER_URL": request.app.state.config.CODE_INTERPRETER_JUPYTER_URL,
|
"CODE_INTERPRETER_JUPYTER_URL": request.app.state.config.CODE_INTERPRETER_JUPYTER_URL,
|
||||||
"CODE_INTERPRETER_JUPYTER_AUTH": request.app.state.config.CODE_INTERPRETER_JUPYTER_AUTH,
|
"CODE_INTERPRETER_JUPYTER_AUTH": request.app.state.config.CODE_INTERPRETER_JUPYTER_AUTH,
|
||||||
"CODE_INTERPRETER_JUPYTER_AUTH_TOKEN": request.app.state.config.CODE_INTERPRETER_JUPYTER_AUTH_TOKEN,
|
"CODE_INTERPRETER_JUPYTER_AUTH_TOKEN": request.app.state.config.CODE_INTERPRETER_JUPYTER_AUTH_TOKEN,
|
||||||
@ -66,6 +68,10 @@ async def set_code_interpreter_config(
|
|||||||
):
|
):
|
||||||
request.app.state.config.ENABLE_CODE_INTERPRETER = form_data.ENABLE_CODE_INTERPRETER
|
request.app.state.config.ENABLE_CODE_INTERPRETER = form_data.ENABLE_CODE_INTERPRETER
|
||||||
request.app.state.config.CODE_INTERPRETER_ENGINE = form_data.CODE_INTERPRETER_ENGINE
|
request.app.state.config.CODE_INTERPRETER_ENGINE = form_data.CODE_INTERPRETER_ENGINE
|
||||||
|
request.app.state.config.CODE_INTERPRETER_PROMPT_TEMPLATE = (
|
||||||
|
form_data.CODE_INTERPRETER_PROMPT_TEMPLATE
|
||||||
|
)
|
||||||
|
|
||||||
request.app.state.config.CODE_INTERPRETER_JUPYTER_URL = (
|
request.app.state.config.CODE_INTERPRETER_JUPYTER_URL = (
|
||||||
form_data.CODE_INTERPRETER_JUPYTER_URL
|
form_data.CODE_INTERPRETER_JUPYTER_URL
|
||||||
)
|
)
|
||||||
@ -84,6 +90,7 @@ async def set_code_interpreter_config(
|
|||||||
return {
|
return {
|
||||||
"ENABLE_CODE_INTERPRETER": request.app.state.config.ENABLE_CODE_INTERPRETER,
|
"ENABLE_CODE_INTERPRETER": request.app.state.config.ENABLE_CODE_INTERPRETER,
|
||||||
"CODE_INTERPRETER_ENGINE": request.app.state.config.CODE_INTERPRETER_ENGINE,
|
"CODE_INTERPRETER_ENGINE": request.app.state.config.CODE_INTERPRETER_ENGINE,
|
||||||
|
"CODE_INTERPRETER_PROMPT_TEMPLATE": request.app.state.config.CODE_INTERPRETER_PROMPT_TEMPLATE,
|
||||||
"CODE_INTERPRETER_JUPYTER_URL": request.app.state.config.CODE_INTERPRETER_JUPYTER_URL,
|
"CODE_INTERPRETER_JUPYTER_URL": request.app.state.config.CODE_INTERPRETER_JUPYTER_URL,
|
||||||
"CODE_INTERPRETER_JUPYTER_AUTH": request.app.state.config.CODE_INTERPRETER_JUPYTER_AUTH,
|
"CODE_INTERPRETER_JUPYTER_AUTH": request.app.state.config.CODE_INTERPRETER_JUPYTER_AUTH,
|
||||||
"CODE_INTERPRETER_JUPYTER_AUTH_TOKEN": request.app.state.config.CODE_INTERPRETER_JUPYTER_AUTH_TOKEN,
|
"CODE_INTERPRETER_JUPYTER_AUTH_TOKEN": request.app.state.config.CODE_INTERPRETER_JUPYTER_AUTH_TOKEN,
|
||||||
|
@ -690,7 +690,12 @@ async def process_chat_payload(request, form_data, metadata, user, model):
|
|||||||
|
|
||||||
if "code_interpreter" in features and features["code_interpreter"]:
|
if "code_interpreter" in features and features["code_interpreter"]:
|
||||||
form_data["messages"] = add_or_update_user_message(
|
form_data["messages"] = add_or_update_user_message(
|
||||||
DEFAULT_CODE_INTERPRETER_PROMPT, form_data["messages"]
|
(
|
||||||
|
request.app.state.config.CODE_INTERPRETER_PROMPT_TEMPLATE
|
||||||
|
if request.app.state.config.CODE_INTERPRETER_PROMPT_TEMPLATE != ""
|
||||||
|
else DEFAULT_CODE_INTERPRETER_PROMPT
|
||||||
|
),
|
||||||
|
form_data["messages"],
|
||||||
)
|
)
|
||||||
|
|
||||||
try:
|
try:
|
||||||
|
@ -1,13 +1,14 @@
|
|||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
import { getRAGConfig, updateRAGConfig } from '$lib/apis/retrieval';
|
|
||||||
import Switch from '$lib/components/common/Switch.svelte';
|
|
||||||
|
|
||||||
import { models } from '$lib/stores';
|
|
||||||
import { onMount, getContext } from 'svelte';
|
|
||||||
import { toast } from 'svelte-sonner';
|
import { toast } from 'svelte-sonner';
|
||||||
import SensitiveInput from '$lib/components/common/SensitiveInput.svelte';
|
import { onMount, getContext } from 'svelte';
|
||||||
import { getCodeInterpreterConfig, setCodeInterpreterConfig } from '$lib/apis/configs';
|
import { getCodeInterpreterConfig, setCodeInterpreterConfig } from '$lib/apis/configs';
|
||||||
|
|
||||||
|
import SensitiveInput from '$lib/components/common/SensitiveInput.svelte';
|
||||||
|
|
||||||
|
import Tooltip from '$lib/components/common/Tooltip.svelte';
|
||||||
|
import Textarea from '$lib/components/common/Textarea.svelte';
|
||||||
|
import Switch from '$lib/components/common/Switch.svelte';
|
||||||
|
|
||||||
const i18n = getContext('i18n');
|
const i18n = getContext('i18n');
|
||||||
|
|
||||||
export let saveHandler: Function;
|
export let saveHandler: Function;
|
||||||
@ -131,7 +132,27 @@
|
|||||||
{/if}
|
{/if}
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- <hr class=" dark:border-gray-850 my-2" /> -->
|
<hr class=" dark:border-gray-850 my-2" />
|
||||||
|
|
||||||
|
<div>
|
||||||
|
<div class="py-0.5 w-full">
|
||||||
|
<div class=" mb-2.5 text-xs font-medium">
|
||||||
|
{$i18n.t('Code Interpreter Prompt Template')}
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<Tooltip
|
||||||
|
content={$i18n.t('Leave empty to use the default prompt, or enter a custom prompt')}
|
||||||
|
placement="top-start"
|
||||||
|
>
|
||||||
|
<Textarea
|
||||||
|
bind:value={config.CODE_INTERPRETER_PROMPT_TEMPLATE}
|
||||||
|
placeholder={$i18n.t(
|
||||||
|
'Leave empty to use the default prompt, or enter a custom prompt'
|
||||||
|
)}
|
||||||
|
/>
|
||||||
|
</Tooltip>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
{/if}
|
{/if}
|
||||||
</div>
|
</div>
|
||||||
<div class="flex justify-end pt-3 text-sm font-medium">
|
<div class="flex justify-end pt-3 text-sm font-medium">
|
||||||
|
Loading…
x
Reference in New Issue
Block a user