[GH-ISSUE #55] Unclear how to use pipelines #38

Closed
opened 2026-10-18 21:01:48 +00:00 by bsakaguchi · 15 comments
Owner

Originally created by @Fusseldieb on GitHub (Jun 4, 2024).
Original GitHub issue: https://github.com/open-webui/pipelines/issues/55

I've tried to set up pipelines within my open-webui project, however it kinda lacks documentation on how to connect the pipelines to the OpenAI API, or similar.

What do I mean by that?

As per README:

Set the API URL to http://localhost:9099 and the API key to 0p3n-w3bu!. Your pipelines should now be active.

This works. The connection establishes... But then what?

Since I removed the OpenAI URL and key to replace it with the localhost pipelines as per README, it no longer shows OpenAI models, which makes sense, however at this point the docs stop explaining what to do further, and I'm honestly a bit lost.
The example pipelines also don't show a OpenAI endpoint being called, so where do we put the OpenAI URL and keys, so it can pass through the pipeline into open-webui?

The Pipeline Admin panel is completely blank, too.

I'm somewhat puzzled. Any help is greatly appreciated.

Originally created by @Fusseldieb on GitHub (Jun 4, 2024). Original GitHub issue: https://github.com/open-webui/pipelines/issues/55 I've tried to set up pipelines within my open-webui project, however it kinda lacks documentation on how to connect the pipelines to the OpenAI API, or similar. _What do I mean by that?_ As per README: > Set the API URL to http://localhost:9099 and the API key to 0p3n-w3bu!. Your pipelines should now be active. This works. The connection establishes... But then _what_? Since I removed the OpenAI URL and key to replace it with the localhost pipelines as per README, it no longer shows OpenAI models, which makes sense, however at this point the docs stop explaining what to do further, and I'm honestly a bit lost. The example pipelines also don't show a OpenAI endpoint being called, so **where** do we put the OpenAI URL and keys, so it can pass through the pipeline into open-webui? The Pipeline Admin panel is completely blank, too. I'm somewhat puzzled. Any help is greatly appreciated.
Author
Owner

@Fusseldieb commented on GitHub (Jun 4, 2024):

Turns out that the "Connection verified" message is "flaky".

If you press Save, you will get a "Connection verified" regardless if the pipelines API could be reached or not.
Clicking on the refresh button, however, yielded "OpenAI: Network Problem", which means it couldn't be reached, so I investigated.

On further read, the README says:

If your Open WebUI is running in a Docker container, replace localhost with host.docker.internal in the API URL.

So I put "http://host.docker.internal:9099", clicked refresh and it once again said "Connection verified", but this time it's actually connected.

Opening up the Admin panel and going into Pipelines finally presents me with options!


EDIT: I'm still puzzled where to put the OpenAI API key. I loaded this pipeline, it gives me options to adjust the windows and whatnot, but nowhere to put any key.

<!-- gh-comment-id:2147700268 --> @Fusseldieb commented on GitHub (Jun 4, 2024): Turns out that the "Connection verified" message is "flaky". If you press Save, you will get a "Connection verified" regardless if the pipelines API could be reached or not. Clicking on the refresh button, however, yielded "OpenAI: Network Problem", which means it **couldn't be reached**, so I investigated. On further read, the README says: > If your Open WebUI is running in a Docker container, replace localhost with host.docker.internal in the API URL. So I put "http://host.docker.internal:9099", clicked refresh and it once again said "Connection verified", but this time it's **actually connected**. Opening up the Admin panel and going into Pipelines finally presents me with options! --- EDIT: I'm still puzzled where to put the OpenAI API key. I loaded [this pipeline](https://github.com/open-webui/pipelines/blob/main/examples/filters/rate_limit_filter_pipeline.py), it gives me options to adjust the windows and whatnot, but nowhere to put any key.
Author
Owner

@justinh-rahb commented on GitHub (Jun 4, 2024):

Pipelines server is an optional add-on for enhanced functionality not present in the WebUI proper. If you had working OpenAI models previously, just go back to what worked... Pipelines may not even be for you.

<!-- gh-comment-id:2147803474 --> @justinh-rahb commented on GitHub (Jun 4, 2024): Pipelines server is an optional add-on for enhanced functionality not present in the WebUI proper. If you had working OpenAI models previously, just go back to what worked... Pipelines may not even be for you.
Author
Owner

@Fusseldieb commented on GitHub (Jun 4, 2024):

Thanks for your answer @justinh-rahb . Yes, I know that. I'm not particularly new to Python so I found it neat.

I just discovered that I do need to add a pipeline provider, too, in order to use OpenAI.

Adding this provider pipeline gave me an option to finally put the OpenAI API key.

It is now working.

Still, I think the docs should mention that, even if it seems obvious for some haha

Also, currently, the "not" manifold provider pipeline seems to be broken. It errors a 401 every time, even with a valid key.


EDIT: Another thing worth mentioning is that the default (?) rate limiting pipeline does not limit admins. I thought it wasn't working, so I set up a normal user account, and surely, it worked!

<!-- gh-comment-id:2147809577 --> @Fusseldieb commented on GitHub (Jun 4, 2024): Thanks for your answer @justinh-rahb . Yes, I know that. I'm not particularly new to Python so I found it neat. I just discovered that I do need to add a pipeline provider, too, in order to use OpenAI. Adding [this provider pipeline](https://github.com/open-webui/pipelines/blob/main/examples/pipelines/providers/openai_manifold_pipeline.py) gave me an option to finally put the OpenAI API key. **It is now working.** Still, I think the docs should mention that, even if it seems obvious for some haha Also, currently, the ["not" manifold provider pipeline](https://github.com/open-webui/pipelines/blob/main/examples/pipelines/providers/openai_pipeline.py) seems to be broken. It errors a 401 every time, even with a valid key. --- EDIT: Another thing worth mentioning is that the default (?) rate limiting pipeline _does not_ limit admins. I thought it wasn't working, so I set up a normal user account, and surely, it worked!
Author
Owner

@justinh-rahb commented on GitHub (Jun 4, 2024):

EDIT: Another thing worth mentioning is that the default (?) rate limiting pipeline does not limit admins. I thought it wasn't working, so I set up a normal user account, and surely, it worked!

This was by design but we could probably make the user class(es) to filter selectable like in the conversation turn limiter filter.

<!-- gh-comment-id:2147839533 --> @justinh-rahb commented on GitHub (Jun 4, 2024): > EDIT: Another thing worth mentioning is that the default (?) rate limiting pipeline _does not_ limit admins. I thought it wasn't working, so I set up a normal user account, and surely, it worked! This was by design but we could probably make the user class(es) to filter selectable like in the conversation turn limiter filter.
Author
Owner

@Fusseldieb commented on GitHub (Jun 4, 2024):

EDIT: Another thing worth mentioning is that the default (?) rate limiting pipeline does not limit admins. I thought it wasn't working, so I set up a normal user account, and surely, it worked!

This was by design but we could probably make the user class(es) to filter selectable like in the conversation turn limiter filter.

That would be even neater, although it already works very well.

The only question that now arised is why I can't download two provider pipelines (aka "manifolds"). I downloaded the OpenAI one, and it works as expected, but now that I tried to download the Anthropic one, it just downloads it... and then vanishes. It doesn't appear in the pipelines.

Is this intended?

<!-- gh-comment-id:2147862563 --> @Fusseldieb commented on GitHub (Jun 4, 2024): > > EDIT: Another thing worth mentioning is that the default (?) rate limiting pipeline _does not_ limit admins. I thought it wasn't working, so I set up a normal user account, and surely, it worked! > > This was by design but we could probably make the user class(es) to filter selectable like in the conversation turn limiter filter. That would be even neater, although it already works very well. The only question that now arised is why I can't download two provider pipelines (aka "manifolds"). I downloaded the OpenAI one, and it works as expected, but now that I tried to download the [Anthropic one](https://github.com/open-webui/pipelines/blob/main/examples/pipelines/providers/anthropic_manifold_pipeline.py), it just downloads it... and then _vanishes_. It doesn't appear in the pipelines. Is this intended?
Author
Owner

@justinh-rahb commented on GitHub (Jun 4, 2024):

EDIT: Another thing worth mentioning is that the default (?) rate limiting pipeline does not limit admins. I thought it wasn't working, so I set up a normal user account, and surely, it worked!

This was by design but we could probably make the user class(es) to filter selectable like in the conversation turn limiter filter.

That would be even neater, although it already works very well.

The only question that now arised is why I can't download two provider pipelines (aka "manifolds"). I downloaded the OpenAI one, and it works as expected, but now that I tried to download the Anthropic one, it just downloads it... and then vanishes. It doesn't appear in the pipelines.

Is this intended?

No, that's not intended, it should be showing up as per normal:

Screenshot 2024-06-04 at 11 48 31 AM

<!-- gh-comment-id:2147870270 --> @justinh-rahb commented on GitHub (Jun 4, 2024): > > > EDIT: Another thing worth mentioning is that the default (?) rate limiting pipeline _does not_ limit admins. I thought it wasn't working, so I set up a normal user account, and surely, it worked! > > > > > > This was by design but we could probably make the user class(es) to filter selectable like in the conversation turn limiter filter. > > That would be even neater, although it already works very well. > > The only question that now arised is why I can't download two provider pipelines (aka "manifolds"). I downloaded the OpenAI one, and it works as expected, but now that I tried to download the [Anthropic one](https://github.com/open-webui/pipelines/blob/main/examples/pipelines/providers/anthropic_manifold_pipeline.py), it just downloads it... and then _vanishes_. It doesn't appear in the pipelines. > > Is this intended? No, that's not intended, it should be showing up as per normal: ![Screenshot 2024-06-04 at 11 48 31 AM](https://github.com/open-webui/pipelines/assets/52832301/2a73a6c0-8070-447c-8468-fcfe85da5443)
Author
Owner

@Fusseldieb commented on GitHub (Jun 4, 2024):

https://github.com/open-webui/pipelines/assets/4715129/3082e45a-aca9-40a7-9eaa-e7eca4449ccf

Something's going on, then...

EDIT: Just restarted the docker container, but this also doesn't fix it.

EDIT: Looking at the docker logs, I see following:

WARNING:root:No Pipeline class found in anthropic_manifold_pipeline
https://raw.githubusercontent.com/open-webui/pipelines/main/examples/pipelines/providers/anthropic_manifold_pipeline.py
on_shutdown:rate_limit_filter_pipeline
on_shutdown:openai_manifold_pipeline
Loaded module: anthropic_manifold_pipeline
Error loading module: anthropic_manifold_pipeline
1 validation error for Valves
ANTHROPIC_API_KEY
  Input should be a valid string [type=string_type, input_value=None, input_type=NoneType]
    For further information visit https://errors.pydantic.dev/2.7/v/string_type
Loaded module: rate_limit_filter_pipeline
Loaded module: openai_manifold_pipeline
Error: 'data'
on_startup:rate_limit_filter_pipeline
on_startup:openai_manifold_pipeline
INFO:     172.17.0.1:55848 - "POST /pipelines/add HTTP/1.1" 200 OK
INFO:     172.17.0.1:55854 - "GET /pipelines HTTP/1.1" 200 OK
INFO:     172.17.0.1:55858 - "GET /models HTTP/1.1" 200 OK
INFO:     172.17.0.1:55874 - "GET /models HTTP/1.1" 200 OK
INFO:     172.17.0.1:55888 - "GET /rate_limit_filter_pipeline/valves/spec HTTP/1.1" 200 OK
INFO:     172.17.0.1:55892 - "GET /models HTTP/1.1" 200 OK
INFO:     172.17.0.1:55894 - "GET /rate_limit_filter_pipeline/valves HTTP/1.1" 200 OK

In this case the manifold script is simply broken?
Although this doesn't make much sense since I never typed in anything and it reports "Input should be a valid string".

<!-- gh-comment-id:2147881355 --> @Fusseldieb commented on GitHub (Jun 4, 2024): https://github.com/open-webui/pipelines/assets/4715129/3082e45a-aca9-40a7-9eaa-e7eca4449ccf Something's going on, then... EDIT: Just restarted the docker container, but this also doesn't fix it. EDIT: Looking at the docker logs, I see following: ``` WARNING:root:No Pipeline class found in anthropic_manifold_pipeline https://raw.githubusercontent.com/open-webui/pipelines/main/examples/pipelines/providers/anthropic_manifold_pipeline.py on_shutdown:rate_limit_filter_pipeline on_shutdown:openai_manifold_pipeline Loaded module: anthropic_manifold_pipeline Error loading module: anthropic_manifold_pipeline 1 validation error for Valves ANTHROPIC_API_KEY Input should be a valid string [type=string_type, input_value=None, input_type=NoneType] For further information visit https://errors.pydantic.dev/2.7/v/string_type Loaded module: rate_limit_filter_pipeline Loaded module: openai_manifold_pipeline Error: 'data' on_startup:rate_limit_filter_pipeline on_startup:openai_manifold_pipeline INFO: 172.17.0.1:55848 - "POST /pipelines/add HTTP/1.1" 200 OK INFO: 172.17.0.1:55854 - "GET /pipelines HTTP/1.1" 200 OK INFO: 172.17.0.1:55858 - "GET /models HTTP/1.1" 200 OK INFO: 172.17.0.1:55874 - "GET /models HTTP/1.1" 200 OK INFO: 172.17.0.1:55888 - "GET /rate_limit_filter_pipeline/valves/spec HTTP/1.1" 200 OK INFO: 172.17.0.1:55892 - "GET /models HTTP/1.1" 200 OK INFO: 172.17.0.1:55894 - "GET /rate_limit_filter_pipeline/valves HTTP/1.1" 200 OK ``` In this case the manifold script is simply broken? Although this doesn't make much sense since I never typed in anything and it reports "Input should be a valid string".
Author
Owner

@tjbck commented on GitHub (Jun 4, 2024):

If the code is invalid, the pipeline will be moved to ./pipelines/failed. I'll investigate the issue with anthropic manifold.

<!-- gh-comment-id:2148011986 --> @tjbck commented on GitHub (Jun 4, 2024): If the code is invalid, the pipeline will be moved to `./pipelines/failed`. I'll investigate the issue with anthropic manifold.
Author
Owner

@tjbck commented on GitHub (Jun 4, 2024):

Just pushed a fix, let me know if the issue persists.

<!-- gh-comment-id:2148014360 --> @tjbck commented on GitHub (Jun 4, 2024): Just pushed a fix, let me know if the issue persists.
Author
Owner

@justinh-rahb commented on GitHub (Jun 4, 2024):

The issue is no anthropic key was set.

<!-- gh-comment-id:2148026481 --> @justinh-rahb commented on GitHub (Jun 4, 2024): The issue is no anthropic key was set.
Author
Owner

@Fusseldieb commented on GitHub (Jun 4, 2024):

The issue is no anthropic key was set.

Nope, this isn't the issue. I was never prompted to set any key. It unloaded itself. I even pushed a patch branch with the defaults "your-api-key-here" to see if it still complains about the missing key, and it did.

Let's see if tjbck's fix solved it.

<!-- gh-comment-id:2148029166 --> @Fusseldieb commented on GitHub (Jun 4, 2024): > The issue is no anthropic key was set. Nope, this isn't the issue. I was never prompted to set any key. It unloaded itself. I even pushed a patch branch with the defaults "your-api-key-here" to see if it still complains about the missing key, and it did. Let's see if tjbck's fix solved it.
Author
Owner

@Fusseldieb commented on GitHub (Jun 4, 2024):

Just pushed a fix, let me know if the issue persists.

This fixed the issue. Thank you <3

<!-- gh-comment-id:2148036341 --> @Fusseldieb commented on GitHub (Jun 4, 2024): > Just pushed a fix, let me know if the issue persists. This fixed the issue. Thank you <3
Author
Owner

@KhalfaniW commented on GitHub (Jul 12, 2024):

I'm on linux and kept getting OpenAI: Network Problem

http://localhost:9099 and http://host.docker.internal:9099 did not work for me

I tried http://172.17.0.1:9099/ and it worked

<!-- gh-comment-id:2224824787 --> @KhalfaniW commented on GitHub (Jul 12, 2024): I'm on linux and kept getting `OpenAI: Network Problem` http://localhost:9099 and http://host.docker.internal:9099 did not work for me I tried http://172.17.0.1:9099/ and it worked
Author
Owner

@har-singh commented on GitHub (Feb 7, 2025):

I'm on linux and kept getting OpenAI: Network Problem

http://localhost:9099 and http://host.docker.internal:9099 did not work for me

I tried http://172.17.0.1:9099/ and it worked

I was getting the same error even with http://172.17.0.1:9099. As soon as I used http://10.182.0.5:9099 the connections was successful.

user@ubuntu:~$ ip address | grep 'inet '
    inet 127.0.0.1/8 scope host lo
    inet 10.182.0.5/24 metric 100 brd 10.182.0.255 scope global eth0
    inet 172.17.0.1/16 brd 172.17.255.255 scope global docker0

Note: also noticed that http://10.182.0.5:9099/ (with trailing slash) does not work.

<!-- gh-comment-id:2642991458 --> @har-singh commented on GitHub (Feb 7, 2025): > I'm on linux and kept getting `OpenAI: Network Problem` > > http://localhost:9099 and http://host.docker.internal:9099 did not work for me > > I tried http://172.17.0.1:9099/ and it worked I was getting the same error even with `http://172.17.0.1:9099`. As soon as I used **`http://10.182.0.5:9099`** the connections was successful. ```bash user@ubuntu:~$ ip address | grep 'inet ' inet 127.0.0.1/8 scope host lo inet 10.182.0.5/24 metric 100 brd 10.182.0.255 scope global eth0 inet 172.17.0.1/16 brd 172.17.255.255 scope global docker0 ``` Note: also noticed that `http://10.182.0.5:9099/` (**with trailing slash**) does not work.
Author
Owner

@jyhelper-git commented on GitHub (May 28, 2025):

@KhalfaniW 为什么和文档中的不一样呢?

<!-- gh-comment-id:2917217065 --> @jyhelper-git commented on GitHub (May 28, 2025): @KhalfaniW 为什么和文档中的不一样呢?
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
open-webui/pipelines#38
No description provided.