open-webui / pipelines

Pipelines: Versatile, UI-Agnostic OpenAI-Compatible Plugin Framework
MIT License
678 stars 186 forks source link

Access uploaded files in pipelines #164

Open gqoew opened 1 month ago

gqoew commented 1 month ago

Hi there,

Being able to access uploaded files would be a great addition to pipelines. It would greatly expand the potential of pipelines, by not being limited with text input.

It would be also great to enable pipelines to return files in the chat as well.

Is there any plan to move this feature forward in the near future? Would be happy to test

Related issues: #66 #19 #81

g453030291 commented 1 month ago

Looking forward to it. Hopefully, we can add the ability to process files in custom pipelines as soon as possible. This will greatly enhance the scalability of the project. Is there anything I can do? I'd like to help.

chandan-artpark commented 1 month ago

Hey, Is there a way to get the files the user has selected in the pipelines class ? currently the only arguments are "user_message, model_id, messages and body". In the default RAG pipeline information such as file names, collection_names are provided, basically information about which file/collection the user has selected in the message. Can this information also be accessed in Pipelines ?

JiangYain commented 4 weeks ago

I have the same problem. If we don't have access to user-uploaded files, it limits a lot of functionality 😶It' s hard to get other parameters passed by the front end, such as whether a new session has been created (which bothers me, even if a new session is created, there is no way to restart a new context), likes or dislike, etc.

InquestGeronimo commented 3 weeks ago

you can access uploaded files by adding an inlet function, if you upload a file, you should see it in the body:

    async def inlet(self, body: dict, user: dict) -> dict:
        # This function is called before the OpenAI API request is made. You can modify the form data before it is sent to the OpenAI API.
        print(f"inlet:{__name__}")

        print(body)
        print(user)

        return body
Fusseldieb commented 2 weeks ago

@InquestGeronimo Sorry for pinging you, but did the API change? Some weeks ago I tried to make a example pipeline, and it errored out as soon as I attached an image (#66). Is it now "supported"?

That's the main thing that's holding me back from integrating pipelines instead of OpenAI so far. I don't want to loose image capabilities.


EDIT: Looks like something HAS changed! The pipeline doesn't error out anymore. Yay! Guess I'll be using Pipelines now!

@tjbck Care to close this issue? I'm not OP but I guess this is solved.