semperai / amica

Amica is an open source interface for interactive communication with 3D characters with voice synthesis and speech recognition.
https://heyamica.com
MIT License
591 stars 92 forks source link

Design and create an extension API #12

Open PatrickLearn opened 7 months ago

PatrickLearn commented 7 months ago

This would open the door to further community involvement and could foster a dev ecosystem. It could also provide a way to split up current features and implementations into modules.

Refactoring the current architecture could be costly, but in the long run it could pay off in many ways, such as not having to individually implement and maintain multiple LLM engine apis and such.

However, it is worth considering the end purpose of this application and comparing it to others. Probably wouldn't want it to end up too similar to oobabooga.

Thoughts?

kasumi-1 commented 7 months ago

I think to do this, well the way I imagine it, is we need a system of hooks around each of the core features. Before and after hooks? And a way for plugins to get access to the main chat context, some list of them which would be loaded and they could register their hooks.

Maybe good to come up with list of plugin ideas, and see if/how design would work for them.. and what needs to be changed to support it

https://github.com/semperai/amica/issues/8 similar thoughts in this just linking for anyone else who is reading, but sort of different goals too.

slowsynapse commented 2 months ago

If any devs are interested in working on this as a contract, please post here with contact info.