pub trait InferenceGatewayAPI {
// Required methods
fn list_models(
&self,
) -> impl Future<Output = Result<Vec<ProviderModels>, GatewayError>> + Send;
fn list_models_by_provider(
&self,
provider: Provider,
) -> impl Future<Output = Result<ProviderModels, GatewayError>> + Send;
fn generate_content(
&self,
provider: Provider,
model: &str,
messages: Vec<Message>,
) -> impl Future<Output = Result<GenerateResponse, GatewayError>> + Send;
fn generate_content_stream(
&self,
provider: Provider,
model: &str,
messages: Vec<Message>,
) -> impl Stream<Item = Result<SSEvents, GatewayError>> + Send;
fn health_check(
&self,
) -> impl Future<Output = Result<bool, GatewayError>> + Send;
}Expand description
Core API interface for the Inference Gateway
Required Methods§
Sourcefn list_models(
&self,
) -> impl Future<Output = Result<Vec<ProviderModels>, GatewayError>> + Send
fn list_models( &self, ) -> impl Future<Output = Result<Vec<ProviderModels>, GatewayError>> + Send
Lists available models from all providers
§Errors
- Returns
GatewayError::Unauthorizedif authentication fails - Returns
GatewayError::BadRequestif the request is malformed - Returns
GatewayError::InternalErrorif the server has an error - Returns
GatewayError::Otherfor other errors
§Returns
A list of models available from all providers
Sourcefn list_models_by_provider(
&self,
provider: Provider,
) -> impl Future<Output = Result<ProviderModels, GatewayError>> + Send
fn list_models_by_provider( &self, provider: Provider, ) -> impl Future<Output = Result<ProviderModels, GatewayError>> + Send
Lists available models by a specific provider
§Arguments
provider- The LLM provider to list models for
§Errors
- Returns
GatewayError::Unauthorizedif authentication fails - Returns
GatewayError::BadRequestif the request is malformed - Returns
GatewayError::InternalErrorif the server has an error - Returns
GatewayError::Otherfor other errors
§Returns
A list of models available from the specified provider
Sourcefn generate_content(
&self,
provider: Provider,
model: &str,
messages: Vec<Message>,
) -> impl Future<Output = Result<GenerateResponse, GatewayError>> + Send
fn generate_content( &self, provider: Provider, model: &str, messages: Vec<Message>, ) -> impl Future<Output = Result<GenerateResponse, GatewayError>> + Send
Generates content using a specified model
§Arguments
provider- The LLM provider to usemodel- Name of the modelmessages- Conversation history and prompttools- Optional tools to use for generation
§Errors
- Returns
GatewayError::Unauthorizedif authentication fails - Returns
GatewayError::BadRequestif the request is malformed - Returns
GatewayError::InternalErrorif the server has an error - Returns
GatewayError::Otherfor other errors
§Returns
The generated response
Sourcefn generate_content_stream(
&self,
provider: Provider,
model: &str,
messages: Vec<Message>,
) -> impl Stream<Item = Result<SSEvents, GatewayError>> + Send
fn generate_content_stream( &self, provider: Provider, model: &str, messages: Vec<Message>, ) -> impl Stream<Item = Result<SSEvents, GatewayError>> + Send
Sourcefn health_check(
&self,
) -> impl Future<Output = Result<bool, GatewayError>> + Send
fn health_check( &self, ) -> impl Future<Output = Result<bool, GatewayError>> + Send
Checks if the API is available
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.