mirror of
https://github.com/open-webui/docs.git
synced 2026-11-05 01:38:13 +00:00
[PR #1401] [MERGED] docs: correct the pipe and action pages against functions.py and actions.py #1366
Labels
No labels
bug
documentation
documentation
duplicate
enhancement
enhancement
good first issue
good first issue
good first issue
help wanted
help wanted
pull-request
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
open-webui/docs#1366
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
📋 Pull Request Information
Original PR: https://github.com/open-webui/docs/pull/1401
Author: @silentoplayz
Created: 9/18/2026
Status: ✅ Merged
Merged: 9/18/2026
Merged by: @Classic298
Base:
main← Head:docs/pipe-action-functions📝 Commits (1)
2dc9575docs: correct the pipe and action pages against functions.py and actions.py📊 Changes
2 files changed (+48 additions, -35 deletions)
View changed files
📝
docs/features/extensibility/plugin/functions/action.mdx(+35 -28)📝
docs/features/extensibility/plugin/functions/pipe.mdx(+13 -7)📄 Description
Summary
I compared the Pipe and Action pages with
functions.py,utils/actions.py,utils/plugin.pyandutils/models.pyondev.Action page:
actionsandaction()at module level. The loader only readsactionsoff theActioninstance, so the example is now a class withactionsas a class attribute, and the page says a module-level list is never read.__id__is the sub-action id alone for a sub-action,__user__is a plain dict withvalveswhenUserValvesexists,body.messagesentries also carryinfoandsources, an escaping exception becomes an HTTP 400 with a toast, and actions are gated onis_active, model access, chat ownership andENABLE_PLUGINS.Pipe page:
pipe()now lists every reserved argument it can declare, notes that the two event callables areNonefor plain API calls, and documents what each return type does on the streaming and non-streaming paths.pipesmay be a list or an async function, the model id is<function id>.<sub id>split on the first dot, a classnameattribute prefixes every sub-model name, a raisingpipes()contributes no models, a malformed entry skips the function, and the function id must be a Python identifier and is lowercased.UserValvesand the per-request reload of admin valves were missing. The FAQ now says what an escaping exception renders as, and thatrequirements:frontmatter is installed unlessENABLE_PIP_INSTALL_FRONTMATTER_REQUIREMENTSis off orOFFLINE_MODEis on.body["model"]is meant.Related issue or discussion
None.
Checklist
Notes for reviewers
Every claim maps to a line on
dev: return handling infunctions.py(stream and non-stream branches), manifold id construction inget_function_models,get_function_paramsfor the signature filter andUserValves,utils/actions.pyfor__id__, gating and the exception path,utils/models.pyfor sub-action names and icons, androuters/functions.pyfor the id rule.🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.