vercel / ai-chatbot

A full-featured, hackable Next.js AI chatbot built by Vercel
https://chat.vercel.ai
Other
5.53k stars 1.63k forks source link

Support OpenAI Assistants + Threads #315

Open burn2delete opened 2 months ago

burn2delete commented 2 months ago

Hello,

I wanted to update the template to use OpenAI Assistants + Threads. In the comments it says it's supported but I can't seem to figure out where I can update this.

athrael-soju commented 2 months ago

There isn't really any implementation of Assistants in the template, so you'd have to implement it from scratch. There's a lot of reusable code though, and tools/GenUI work well with Assistants too, So You can draw inspiration from that.

kevb10 commented 2 months ago

... but I can't seem to figure out where I can update this

submitUserMessage() function in lib/chat/actions.tsx is probably a good start

GoodestUsername commented 1 month ago

@athrael-soju How does genUI work with assistants?

smuk3c commented 1 month ago

Same question here

smuk3c commented 1 month ago

@burn2delete did you manage to replace completion with assistant?

BaileySimrell commented 1 month ago

I spent quite a bit of time yesterday trying to get this template to work with OpenAI Assistants ... did not have any luck tbh

Kept running into one issue after another.

It's not just the lib/chat/actions.tsx file that needs to be updated ... all of the logic that currently stores messages and maps the messages to threads and threads to users in Vercel KV also needs to be updated to instead store thread IDs of the Assistant threads in OpenAI. Vercel KV can be used to keep track of which threads belong to which user, but there's no need to store all messages in KV anymore.

It would be really great if the maintainers of this template created a version that worked out of the box with OAI Assistants. Would be much more powerful.

Some of the stock UI streaming stuff is overkill and takes a long time to remove from the template. Very cool demo though.

athrael-soju commented 1 month ago

@athrael-soju How does genUI work with assistants?

Sorry for the late reply. Just saw this.

Assistants can also use function calls, but this template is too embedded with Completions API via Vercel AI and also has several unresolved issues. I really wouldn't suggest you integrate assistants here and instead use this: https://github.com/openai/openai-assistants-quickstart

You can then integrate genUI on top of that template instead.

Either that, or wait for the next Vercel genUI template, which will likely be based on next.js 15 and hopefully less buggy.

I hope that helps.

BaileySimrell commented 1 month ago

@athrael-soju How does genUI work with assistants?

Sorry for the late reply. Just saw this.

Assistants can also use function calls, but this template is too embedded with Completions API via Vercel AI and also has several unresolved issues. I really wouldn't suggest you integrate assistants here and instead use this: https://github.com/openai/openai-assistants-quickstart

You can then integrate genUI on top of that template instead.

Either that, or wait for the next Vercel genUI template, which will likely be based on next.js 15 and hopefully less buggy.

I hope that helps.

I agree with this ... the OpenAI template is very good, though the UI is bare bones (https://github.com/openai/openai-assistants-quickstart)[https://github.com/openai/openai-assistants-quickstart]