Sfoglia il codice sorgente

feat: allow users to specify timeout for text generations and workflows by environment variable (#8395)

tags/0.8.3
kurokobo 1 anno fa
parent
commit
52857dc0a6
Nessun account collegato all'indirizzo email del committer

+ 7
- 0
docker/.env.example Vedi File

# SSRF Proxy server HTTPS URL # SSRF Proxy server HTTPS URL
SSRF_PROXY_HTTPS_URL=http://ssrf_proxy:3128 SSRF_PROXY_HTTPS_URL=http://ssrf_proxy:3128


# ------------------------------
# Environment Variables for web Service
# ------------------------------

# The timeout for the text generation in millisecond
TEXT_GENERATION_TIMEOUT_MS=60000

# ------------------------------ # ------------------------------
# Environment Variables for db Service # Environment Variables for db Service
# ------------------------------ # ------------------------------

+ 1
- 0
docker/docker-compose.yaml Vedi File

APP_API_URL: ${APP_API_URL:-} APP_API_URL: ${APP_API_URL:-}
SENTRY_DSN: ${WEB_SENTRY_DSN:-} SENTRY_DSN: ${WEB_SENTRY_DSN:-}
NEXT_TELEMETRY_DISABLED: ${NEXT_TELEMETRY_DISABLED:-0} NEXT_TELEMETRY_DISABLED: ${NEXT_TELEMETRY_DISABLED:-0}
TEXT_GENERATION_TIMEOUT_MS: ${TEXT_GENERATION_TIMEOUT_MS:-60000}


# The postgres database. # The postgres database.
db: db:

+ 3
- 0
web/.env.example Vedi File



# Disable Upload Image as WebApp icon default is false # Disable Upload Image as WebApp icon default is false
NEXT_PUBLIC_UPLOAD_IMAGE_AS_ICON=false NEXT_PUBLIC_UPLOAD_IMAGE_AS_ICON=false

# The timeout for the text generation in millisecond
NEXT_PUBLIC_TEXT_GENERATION_TIMEOUT_MS=60000

+ 9
- 3
web/app/components/share/text-generation/result/index.tsx Vedi File

})) }))
}, },
onWorkflowFinished: ({ data }) => { onWorkflowFinished: ({ data }) => {
if (isTimeout)
if (isTimeout) {
notify({ type: 'warning', message: t('appDebug.warningMessage.timeoutExceeded') })
return return
}
if (data.error) { if (data.error) {
notify({ type: 'error', message: data.error }) notify({ type: 'error', message: data.error })
setWorkflowProcessData(produce(getWorkflowProcessData()!, (draft) => { setWorkflowProcessData(produce(getWorkflowProcessData()!, (draft) => {
setCompletionRes(res.join('')) setCompletionRes(res.join(''))
}, },
onCompleted: () => { onCompleted: () => {
if (isTimeout)
if (isTimeout) {
notify({ type: 'warning', message: t('appDebug.warningMessage.timeoutExceeded') })
return return
}
setRespondingFalse() setRespondingFalse()
setMessageId(tempMessageId) setMessageId(tempMessageId)
onCompleted(getCompletionRes(), taskId, true) onCompleted(getCompletionRes(), taskId, true)
setCompletionRes(res.join('')) setCompletionRes(res.join(''))
}, },
onError() { onError() {
if (isTimeout)
if (isTimeout) {
notify({ type: 'warning', message: t('appDebug.warningMessage.timeoutExceeded') })
return return
}
setRespondingFalse() setRespondingFalse()
onCompleted(getCompletionRes(), taskId, false) onCompleted(getCompletionRes(), taskId, false)
isEnd = true isEnd = true

+ 1
- 0
web/app/layout.tsx Vedi File

data-public-sentry-dsn={process.env.NEXT_PUBLIC_SENTRY_DSN} data-public-sentry-dsn={process.env.NEXT_PUBLIC_SENTRY_DSN}
data-public-maintenance-notice={process.env.NEXT_PUBLIC_MAINTENANCE_NOTICE} data-public-maintenance-notice={process.env.NEXT_PUBLIC_MAINTENANCE_NOTICE}
data-public-site-about={process.env.NEXT_PUBLIC_SITE_ABOUT} data-public-site-about={process.env.NEXT_PUBLIC_SITE_ABOUT}
data-public-text-generation-timeout-ms={process.env.NEXT_PUBLIC_TEXT_GENERATION_TIMEOUT_MS}
> >
<Topbar /> <Topbar />
<BrowserInitor> <BrowserInitor>

+ 8
- 1
web/config/index.ts Vedi File



export const VAR_REGEX = /\{\{(#[a-zA-Z0-9_-]{1,50}(\.[a-zA-Z_][a-zA-Z0-9_]{0,29}){1,10}#)\}\}/gi export const VAR_REGEX = /\{\{(#[a-zA-Z0-9_-]{1,50}(\.[a-zA-Z_][a-zA-Z0-9_]{0,29}){1,10}#)\}\}/gi


export const TEXT_GENERATION_TIMEOUT_MS = 60000
export let textGenerationTimeoutMs = 60000

if (process.env.NEXT_PUBLIC_TEXT_GENERATION_TIMEOUT_MS && process.env.NEXT_PUBLIC_TEXT_GENERATION_TIMEOUT_MS !== '')
textGenerationTimeoutMs = parseInt(process.env.NEXT_PUBLIC_TEXT_GENERATION_TIMEOUT_MS)
else if (globalThis.document?.body?.getAttribute('data-public-text-generation-timeout-ms') && globalThis.document.body.getAttribute('data-public-text-generation-timeout-ms') !== '')
textGenerationTimeoutMs = parseInt(globalThis.document.body.getAttribute('data-public-text-generation-timeout-ms') as string)

export const TEXT_GENERATION_TIMEOUT_MS = textGenerationTimeoutMs


export const DISABLE_UPLOAD_IMAGE_AS_ICON = process.env.NEXT_PUBLIC_DISABLE_UPLOAD_IMAGE_AS_ICON === 'true' export const DISABLE_UPLOAD_IMAGE_AS_ICON = process.env.NEXT_PUBLIC_DISABLE_UPLOAD_IMAGE_AS_ICON === 'true'

+ 2
- 0
web/docker/entrypoint.sh Vedi File

export NEXT_PUBLIC_SITE_ABOUT=${SITE_ABOUT} export NEXT_PUBLIC_SITE_ABOUT=${SITE_ABOUT}
export NEXT_TELEMETRY_DISABLED=${NEXT_TELEMETRY_DISABLED} export NEXT_TELEMETRY_DISABLED=${NEXT_TELEMETRY_DISABLED}


export NEXT_PUBLIC_TEXT_GENERATION_TIMEOUT_MS=${TEXT_GENERATION_TIMEOUT_MS}

pm2 start ./pm2.json --no-daemon pm2 start ./pm2.json --no-daemon

+ 3
- 0
web/i18n/en-US/app-debug.ts Vedi File

notSelectModel: 'Please choose a model', notSelectModel: 'Please choose a model',
waitForImgUpload: 'Please wait for the image to upload', waitForImgUpload: 'Please wait for the image to upload',
}, },
warningMessage: {
timeoutExceeded: 'Results are not displayed due to timeout. Please refer to the logs to gather complete results.',
},
chatSubTitle: 'Instructions', chatSubTitle: 'Instructions',
completionSubTitle: 'Prefix Prompt', completionSubTitle: 'Prefix Prompt',
promptTip: promptTip:

Loading…
Annulla
Salva