enricoros / big-AGI

Generative AI suite powered by state-of-the-art models and providing advanced AI/AGI functions. It features AI personas, AGI functions, multi-model chats, text-to-image, voice, response streaming, code highlighting and execution, PDF import, presets for developers, much more. Deploy on-prem or in the cloud.
https://big-agi.com
MIT License
4.82k stars 1.09k forks source link

[Roadmap] OpenAI function calling #574

Open talalryz opened 1 week ago

talalryz commented 1 week ago

Description Are there plans to support openAI function calling? Extension: Are there plans to support an abstracted from of function calling that is vendor agnostic (anthropic, mistral)?

Why Function calling is useful. For abstracted function calling, the ability to define a function that works even when you switch model providers is more useful

enricoros commented 1 week ago

@talalryz coming soon in a vendor abstracted way. However, how would you take advantage of this as a user? The code has its own functions, but how would a user define a function? In which language, and with which context and security model?

Penagwin commented 1 week ago

@enricoros Maybe we could use webhooks? That way people can just make a quick python/node/etc server and I think that'd solve many of the security concerns. Maybe there could be a panel where you define them similar to Claude's tools?

enricoros commented 1 week ago

@Penagwin this is a good idea, and prob powerful.

Penagwin commented 1 week ago

My assumption is that many people run it locally (at least that's how I use it) so it won't be an issue there.

We could use a SSE/websockets type thing that people could subscribe to that pushes events, this feels a bit messy but might work well. We would likely need an api key or some similar authentication mechanism.

Services like ngrok could work although idk how I feel about recommending a 3rd party like that for security reasons. I think gradio has something built in that does this, so at least some people might be okay with it.

I think at least starting with webhooks would be a good idea/easiest