llm 1.3.8

A Rust library unifying multiple LLM backends.
Documentation
mod cohere;
mod groq;
mod huggingface;
mod mistral;
mod openrouter;

use crate::{
    builder::state::BuilderState,
    chat::{Tool, ToolChoice},
    error::LLMError,
    LLMProvider,
};

pub(super) fn build_groq(
    state: &mut BuilderState,
    tools: Option<Vec<Tool>>,
    tool_choice: Option<ToolChoice>,
) -> Result<Box<dyn LLMProvider>, LLMError> {
    groq::build_groq(state, tools, tool_choice)
}

pub(super) fn build_openrouter(
    state: &mut BuilderState,
    tools: Option<Vec<Tool>>,
    tool_choice: Option<ToolChoice>,
) -> Result<Box<dyn LLMProvider>, LLMError> {
    openrouter::build_openrouter(state, tools, tool_choice)
}

pub(super) fn build_huggingface(
    state: &mut BuilderState,
    tools: Option<Vec<Tool>>,
    tool_choice: Option<ToolChoice>,
) -> Result<Box<dyn LLMProvider>, LLMError> {
    huggingface::build_huggingface(state, tools, tool_choice)
}

pub(super) fn build_mistral(
    state: &mut BuilderState,
    tools: Option<Vec<Tool>>,
    tool_choice: Option<ToolChoice>,
) -> Result<Box<dyn LLMProvider>, LLMError> {
    mistral::build_mistral(state, tools, tool_choice)
}

pub(super) fn build_cohere(
    state: &mut BuilderState,
    tools: Option<Vec<Tool>>,
    tool_choice: Option<ToolChoice>,
) -> Result<Box<dyn LLMProvider>, LLMError> {
    cohere::build_cohere(state, tools, tool_choice)
}