Skip to content

Repository files navigation

OmniLLM

Go CIGo LintGo SASTDocsDocsVisualizationLicense

Batteries-included LLM client that bundles omnillm-core with all thick providers.

Installation

go get github.com/plexusone/omnillm

Quick Start

import"github.com/plexusone/omnillm"client, _:=omnillm.NewClient(omnillm.ClientConfig{
Provider: omnillm.ProviderNameOpenAI,
APIKey: os.Getenv("OPENAI_API_KEY"),
})

Provider Support

Thin Providers (omnillm-core)

Lightweight implementations using stdlib net/http:

ProviderStreamingToolsReasoningJSON Mode
OpenAIYesYesYesYes
AnthropicYesYesYesNo
GeminiYesNoNoNo
X.AI (Grok)YesYesYesYes
GLM (Zhipu)YesYesYesNo
Kimi (Moonshot)YesNoYesNo
Qwen (Alibaba)YesYesYesNo
OllamaYesYesNoYes

Thick Providers (Official SDKs)

Full-featured implementations using official vendor SDKs:

ProviderModuleStreamingToolsReasoningJSON Mode
OpenAIomni-openaiYesYesYesYes
Anthropicomni-anthropicYesYesYesNo
Geminiomni-googleYesNoYesNo
Bedrockomni-awsYesYesPartialNo
OpenRouteromni-openrouterYesYesYesYes

Thick providers automatically override thin providers when imported.

Reasoning Support

Control LLM reasoning depth with the unified ReasoningEffort or Thinking fields:

effort:=omnillm.ReasoningEffortHighresponse, err:=client.CreateChatCompletion(ctx, &omnillm.ChatCompletionRequest{
Model: "o1-preview", // or claude-sonnet-4, grok-4-fast, etc.ReasoningEffort: &effort,
Messages: messages,
})

See Reasoning Feature Guide for details.

Thin vs Thick

AspectThin (omnillm-core)Thick (omni-*)
DependenciesMinimal (stdlib)Official SDK
API CoverageCore featuresFull coverage
RetriesManualSDK-managed
AuthAPI keySDK-managed

Selective Import

Import only what you need:

import (
omnillm "github.com/plexusone/omnillm-core"
_ "github.com/plexusone/omni-openai/omnillm"// Only OpenAI thick provider
)

Documentation

License

MIT

About

Batteries-included LLM client that bundles omnillm-core with all thick providers.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Contributors

Languages