[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-72493":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":14,"openIssues":15,"contributorsCount":16,"subscribersCount":16,"size":16,"stars1d":17,"stars7d":17,"stars30d":18,"stars90d":16,"forks30d":16,"starsTrendScore":19,"compositeScore":20,"rankGlobal":10,"rankLanguage":10,"license":21,"archived":22,"fork":22,"defaultBranch":23,"hasWiki":24,"hasPages":22,"topics":25,"createdAt":10,"pushedAt":10,"updatedAt":26,"readmeContent":27,"aiSummary":28,"trendingCount":16,"starSnapshotCount":16,"syncStatus":17,"lastSyncTime":29,"discoverSource":30},72493,"pipelines","open-webui\u002Fpipelines","open-webui","Pipelines: Versatile, UI-Agnostic OpenAI-Compatible Plugin Framework ","",null,"Python",2396,686,30,154,0,2,26,6,68.11,"MIT License",false,"main",true,[7],"2026-06-12 04:01:06","\u003Cp align=\"center\">\n  \u003Ca href=\"#\">\u003Cimg src=\".\u002Fdocs\u002Fimages\u002Fheader.png\" alt=\"Pipelines Logo\">\u003C\u002Fa>\n\u003C\u002Fp>\n\n# Pipelines: UI-Agnostic OpenAI API Plugin Framework\n\n> [!TIP]\n> **DO NOT USE PIPELINES!**\n>\n> If your goal is simply to add support for additional providers like Anthropic or basic filters, you likely don't need Pipelines . For those cases, Open WebUI Functions are a better fit—it's built-in, much more convenient, and easier to configure. Pipelines, however, comes into play when you're dealing with computationally heavy tasks (e.g., running large models or complex logic) that you want to offload from your main Open WebUI instance for better performance and scalability.\n\n\nWelcome to **Pipelines**, an [Open WebUI](https:\u002F\u002Fgithub.com\u002Fopen-webui) initiative. Pipelines bring modular, customizable workflows to any UI client supporting OpenAI API specs – and much more! Easily extend functionalities, integrate unique logic, and create dynamic workflows with just a few lines of code.\n\n## 🚀 Why Choose Pipelines?\n\n- **Limitless Possibilities:** Easily add custom logic and integrate Python libraries, from AI agents to home automation APIs.\n- **Seamless Integration:** Compatible with any UI\u002Fclient supporting OpenAI API specs. (Only pipe-type pipelines are supported; filter types require clients with Pipelines support.)\n- **Custom Hooks:** Build and integrate custom pipelines.\n\n### Examples of What You Can Achieve:\n\n- [**Function Calling Pipeline**](\u002Fexamples\u002Ffilters\u002Ffunction_calling_filter_pipeline.py): Easily handle function calls and enhance your applications with custom logic.\n- [**Custom RAG Pipeline**](\u002Fexamples\u002Fpipelines\u002Frag\u002Fllamaindex_pipeline.py): Implement sophisticated Retrieval-Augmented Generation pipelines tailored to your needs.\n- [**Message Monitoring Using Langfuse**](\u002Fexamples\u002Ffilters\u002Flangfuse_filter_pipeline.py): Monitor and analyze message interactions in real-time using Langfuse.\n- [**Message Monitoring Using Opik**](\u002Fexamples\u002Ffilters\u002Fopik_filter_pipeline.py): Monitor and analyze message interactions using Opik, an open-source platform for debugging and evaluating LLM applications and RAG systems.\n- [**Rate Limit Filter**](\u002Fexamples\u002Ffilters\u002Frate_limit_filter_pipeline.py): Control the flow of requests to prevent exceeding rate limits.\n- [**Real-Time Translation Filter with LibreTranslate**](\u002Fexamples\u002Ffilters\u002Flibretranslate_filter_pipeline.py): Seamlessly integrate real-time translations into your LLM interactions.\n- [**Toxic Message Filter**](\u002Fexamples\u002Ffilters\u002Fdetoxify_filter_pipeline.py): Implement filters to detect and handle toxic messages effectively.\n- **And Much More!**: The sky is the limit for what you can accomplish with Pipelines and Python. [Check out our scaffolds](\u002Fexamples\u002Fscaffolds) to get a head start on your projects and see how you can streamline your development process!\n\n## 🔧 How It Works\n\n\u003Cp align=\"center\">\n  \u003Ca href=\".\u002Fdocs\u002Fimages\u002Fworkflow.png\">\u003Cimg src=\".\u002Fdocs\u002Fimages\u002Fworkflow.png\" alt=\"Pipelines Workflow\">\u003C\u002Fa>\n\u003C\u002Fp>\n\nIntegrating Pipelines with any OpenAI API-compatible UI client is simple. Launch your Pipelines instance and set the OpenAI URL on your client to the Pipelines URL. That's it! You're ready to leverage any Python library for your needs.\n\n## ⚡ Quick Start with Docker\n\n> [!WARNING]\n> Pipelines are a plugin system with arbitrary code execution — **don't fetch random pipelines from sources you don't trust**.\n\n### Docker\n\nFor a streamlined setup using Docker:\n\n1. **Run the Pipelines container:**\n\n   ```sh\n   docker run -d -p 9099:9099 --add-host=host.docker.internal:host-gateway -v pipelines:\u002Fapp\u002Fpipelines --name pipelines --restart always ghcr.io\u002Fopen-webui\u002Fpipelines:main\n   ```\n\n2. **Connect to Open WebUI:**\n\n   - Navigate to the **Settings > Connections > OpenAI API** section in Open WebUI.\n   - Set the API URL to `http:\u002F\u002Flocalhost:9099` and the API key to `0p3n-w3bu!`. Your pipelines should now be active.\n\n> [!NOTE]\n> If your Open WebUI is running in a Docker container, replace `localhost` with `host.docker.internal` in the API URL.\n\n3. **Manage Configurations:**\n\n   - In the admin panel, go to **Admin Settings > Pipelines tab**.\n   - Select your desired pipeline and modify the valve values directly from the WebUI.\n\n> [!TIP]\n> If you are unable to connect, it is most likely a Docker networking issue. We encourage you to troubleshoot on your own and share your methods and solutions in the discussions forum.\n\nIf you need to install a custom pipeline with additional dependencies:\n\n- **Run the following command:**\n\n  ```sh\n  docker run -d -p 9099:9099 --add-host=host.docker.internal:host-gateway -e PIPELINES_URLS=\"https:\u002F\u002Fgithub.com\u002Fopen-webui\u002Fpipelines\u002Fblob\u002Fmain\u002Fexamples\u002Ffilters\u002Fdetoxify_filter_pipeline.py\" -v pipelines:\u002Fapp\u002Fpipelines --name pipelines --restart always ghcr.io\u002Fopen-webui\u002Fpipelines:main\n  ```\n\nAlternatively, you can directly install pipelines from the admin settings by copying and pasting the pipeline URL, provided it doesn't have additional dependencies.\n\nThat's it! You're now ready to build customizable AI integrations effortlessly with Pipelines. Enjoy!\n\n### Docker Compose together with Open WebUI\n\nUsing [Docker Compose](https:\u002F\u002Fdocs.docker.com\u002Fcompose\u002F) simplifies the management of multi-container Docker applications.\n\nHere is an example configuration file `docker-compose.yaml` for setting up Open WebUI together with Pipelines using Docker Compose:\n\n```yaml\nservices:\n  openwebui:\n      image: ghcr.io\u002Fopen-webui\u002Fopen-webui:main\n      ports:\n        - \"3000:8080\"\n      volumes:\n        - open-webui:\u002Fapp\u002Fbackend\u002Fdata\n\n  pipelines:\n      image: ghcr.io\u002Fopen-webui\u002Fpipelines:main\n      volumes:\n        - pipelines:\u002Fapp\u002Fpipelines\n      restart: always\n      environment:\n        - PIPELINES_API_KEY=0p3n-w3bu!\n\nvolumes:\n  open-webui: {}\n  pipelines: {}\n```\n\nTo start your services, run the following command:\n\n```\ndocker compose up -d\n```\n\nYou can then use `http:\u002F\u002Fpipelines:9099` (the name is the same as the service's name defined in `docker-compose.yaml`) as an API URL to connect to Open WebUI.\n\n> [!NOTE]\n> The `pipelines` service is accessible only by `openwebui` Docker service and thus provide additional layer of security.\n\n## 📦 Installation and Setup\n\nGet started with Pipelines in a few easy steps:\n\n1. **Ensure Python 3.11 is installed.**\n2. **Clone the Pipelines repository:**\n\n   ```sh\n   git clone https:\u002F\u002Fgithub.com\u002Fopen-webui\u002Fpipelines.git\n   cd pipelines\n   ```\n\n3. **Install the required dependencies:**\n\n   ```sh\n   pip install -r requirements.txt\n   ```\n\n4. **Start the Pipelines server:**\n\n   ```sh\n   sh .\u002Fstart.sh\n   ```\n\nOnce the server is running, set the OpenAI URL on your client to the Pipelines URL. This unlocks the full capabilities of Pipelines, integrating any Python library and creating custom workflows tailored to your needs.\n\n### Advanced Docker Builds\nIf you create your own pipelines, you can install them when the Docker image is built.  For example,\ncreate a bash script with the snippet below to collect files from a path, add them as install URLs, \nand build the Docker image with the new pipelines automatically installed.\n\nNOTE: The pipelines module will still attempt to install any package dependencies found at in your\nfile headers at start time, but they will not be downloaded again.\n\n```sh\n# build in the specific pipelines\nPIPELINE_DIR=\"pipelines-custom\"\n# assuming the above directory is in your source repo and not skipped by `.dockerignore`, it will get copied to the image\nPIPELINE_PREFIX=\"file:\u002F\u002F\u002Fapp\"\n\n# retrieve all the sub files\nexport PIPELINES_URLS=\nfor file in \"$PIPELINE_DIR\"\u002F*; do\n    if [[ -f \"$file\" ]]; then\n        if [[ \"$file\" == *.py ]]; then\n            if [ -z \"$PIPELINES_URLS\" ]; then\n                PIPELINES_URLS=\"$PIPELINE_PREFIX\u002F$file\"\n            else\n                PIPELINES_URLS=\"$PIPELINES_URLS;$PIPELINE_PREFIX\u002F$file\"\n            fi\n        fi\n    fi\ndone\necho \"New Custom Install Pipes: $PIPELINES_URLS\"\n\ndocker build --build-arg PIPELINES_URLS=$PIPELINES_URLS --build-arg MINIMUM_BUILD=true -f Dockerfile .\n```\n\n## 📂 Directory Structure and Examples\n\nThe `\u002Fpipelines` directory is the core of your setup. Add new modules, customize existing ones, and manage your workflows here. All the pipelines in the `\u002Fpipelines` directory will be **automatically loaded** when the server launches.\n\nYou can change this directory from `\u002Fpipelines` to another location using the `PIPELINES_DIR` env variable.\n\n### Integration Examples\n\nFind various integration examples in the `\u002Fexamples` directory. These examples show how to integrate different functionalities, providing a foundation for building your own custom pipelines.\n\n## 🎉 Work in Progress\n\nWe’re continuously evolving! We'd love to hear your feedback and understand which hooks and features would best suit your use case. Feel free to reach out and become a part of our Open WebUI community!\n\nOur vision is to push **Pipelines** to become the ultimate plugin framework for our AI interface, **Open WebUI**. Imagine **Open WebUI** as the WordPress of AI interfaces, with **Pipelines** being its diverse range of plugins. Join us on this exciting journey! 🌍\n","Pipelines 是一个与UI无关的OpenAI兼容插件框架，旨在为支持OpenAI API规范的任何客户端提供可扩展的工作流。其核心功能包括通过简单的代码实现自定义逻辑集成、Python库调用以及动态工作流创建。技术特点上，Pipelines 支持模块化设计，允许开发者构建和整合定制管道，并且可以无缝对接到符合OpenAI API规格的任意用户界面或客户端中。该项目特别适用于需要处理计算密集型任务（如运行大型模型或复杂逻辑）的场景，能够有效提升性能并保证系统的可扩展性。对于希望在现有应用基础上增加高级功能或者优化资源利用效率的技术团队而言，Pipelines 提供了一个强大而灵活的解决方案。","2026-06-11 03:42:16","high_star"]