You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Puter has an interface called puter-tts for voice synthesis, which is one of the services that ElevenLabs provides. ElevenLabs should therefore implement puter-tts and probably a number of other new driver interfaces for its other services.
The ElevenLabs integration should either go in a new module for voice-related driver interfaces (puter-tts and related AWSPollyService should then also be moved here), or should go in the existing puterai module.
What is a Puter Driver?
Let's call the operating system on your computer/phone/etc a "Low-Level Device Operating System" or LLDOS. Puter is a "High-Level Distributed Operating System" or HLDOS. Where an LLDOS coordinates access to hardware, an HLDOS coordinates access to services and network resources. In Puter, drivers are integrations with third-party services, network devices, or even the underlying LLDOS where a Puter node is hosted.
Puter drivers have two parts:
a driver interface
a driver implementation
Driver interfaces are the "types" of drivers. For example, an LLDOS may have multiple different drivers that are recognized as "printers". "printer" is the interface or type. Some examples of driver interfaces on Puter include:
Chat completion interface for AI / LLMs (puter-chat-completion)
Providers of OCR (optical character recognition) (puter-ocr)
Providers of voice synthesis / text-to-speech (puter-tts)
Key-value storage (puter-kv)
CRUD (+ Query) interface for Puter-native data types (crud-q)
Execute code on external interpreters/compilers (puter-exec)
Driver implementations are backend services that define a static member called IMPLEMENTS, where this member contains an entry for a registered interface. (this may sound confusing at first - it will be more clear after reading the resources below)
Note: some of this documentation may tell you to add an interface to interfaces.js inside the drivers directory. Don't do this; instead register interfaces as is done here, here, here, and here.
Examples of Drivers
The puterai module registers a number of driver interfaces and implementations.
The hello-world service implements the hello-world driver interface as an example. This is a little outdated because:
HelloWorldService should probably be in a separate module. (ex: a module called examples)
The hello-world interface is defined in this legacy interfaces.js file, but it should be registered by HelloWorldService instead like we do in AIInterfaceService.
Driver interfaces of a similar nature are often placed in the same module. For example, the puterai module has interfaces for LLMs, TTS, etc. It is assumed that AI service providers will often provide multiple of these types of services, so if you already have an API key you should be able to access all the provider's services with just this module.
The text was updated successfully, but these errors were encountered:
ElevenLabs Driver
ElevenLabs is an AI service provider that enables a wide range of voice-related services, such as:
Puter has an interface called
puter-tts
for voice synthesis, which is one of the services that ElevenLabs provides. ElevenLabs should therefore implementputer-tts
and probably a number of other new driver interfaces for its other services.The ElevenLabs integration should either go in a new module for voice-related driver interfaces (
puter-tts
and related AWSPollyService should then also be moved here), or should go in the existingputerai
module.What is a Puter Driver?
Let's call the operating system on your computer/phone/etc a "Low-Level Device Operating System" or LLDOS. Puter is a "High-Level Distributed Operating System" or HLDOS. Where an LLDOS coordinates access to hardware, an HLDOS coordinates access to services and network resources. In Puter, drivers are integrations with third-party services, network devices, or even the underlying LLDOS where a Puter node is hosted.
Puter drivers have two parts:
Driver interfaces are the "types" of drivers. For example, an LLDOS may have multiple different drivers that are recognized as "printers". "printer" is the interface or type. Some examples of driver interfaces on Puter include:
puter-chat-completion
)puter-ocr
)puter-tts
)puter-kv
)crud-q
)puter-exec
)Driver implementations are backend services that define a static member called
IMPLEMENTS
, where this member contains an entry for a registered interface. (this may sound confusing at first - it will be more clear after reading the resources below)Building Drivers
Note: some of this documentation may tell you to add an interface to
interfaces.js
inside the drivers directory. Don't do this; instead register interfaces as is done here, here, here, and here.Examples of Drivers
hello-world
service implements thehello-world
driver interface as an example. This is a little outdated because:examples
)hello-world
interface is defined in this legacy interfaces.js file, but it should be registered by HelloWorldService instead like we do in AIInterfaceService.puterai
module has interfaces for LLMs, TTS, etc. It is assumed that AI service providers will often provide multiple of these types of services, so if you already have an API key you should be able to access all the provider's services with just this module.The text was updated successfully, but these errors were encountered: