SuperAPI AI Directory

bridgic-llms

Agents & models

View repository

Updated 10-15 20:06

About this skill

Bridgic LLMs

Model-neutral LLM integration with protocol-driven capability declaration.

Dependencies

Package BaseLlm StructuredOutput ToolSelection
bridgic-llms-openai yes yes yes
bridgic-llms-openai-like yes no no
bridgic-llms-vllm yes yes yes
python-dotenv — — —

Install only the LLM provider package you need. python-dotenv is required for loading .env configuration.

Installation: Run the install script to set up all dependencies:

bash "skills/bridgic-llms/scripts/install-deps.sh" "$PWD" [PROVIDER]

Supported providers: openai (default), openai-like, vllm. The script checks uv availability, initializes a uv project if needed, installs any missing packages via uv add, and runs uv sync to finalize the environment. When it exits successfully the project is fully initialized and ready to use — no manual uv add / uv sync follow-up is required.

Quick Start

import os
from dotenv import load_dotenv
from bridgic.llms.openai import OpenAILlm, OpenAIConfiguration

load_dotenv()

llm = OpenAILlm(
    api_key=os.environ.get("LLM_API_KEY"),
    api_base=os.environ.get("LLM_API_BASE"),
    configuration=OpenAIConfiguration(
        model=os.environ.get("LLM_MODEL", "gpt-4o"),
        temperature=0.0,
        max_tokens=16384,
    ),
    timeout=180.0,
)

Provider Selection Guide

Provider When to Use
OpenAILlm Production use, need structured output or tool calling. Works with OpenAI API.
OpenAILikeLlm Third-party OpenAI-compatible APIs (DashScope, etc.), only need basic chat/stream.
VllmServerLlm Self-hosted vLLM inference server, full capability.

Common pitfall: Do NOT use OpenAILikeLlm when you need structured output or tool selection — it does not implement those protocols. Use OpenAILlm instead.

Basic Interfaces

All providers implement BaseLlm:

from bridgic.core.model.types import Message, Role

messages = [
    Message.from_text("You are a helpful assistant.", role=Role.SYSTEM),
    Message.from_text("Hello!", role=Role.USER),
]

# Chat — complete response
response = llm.chat(messages=messages, model="gpt-4o", temperature=0.7)
print(response.message.content)

# Stream — real-time chunks
for chunk in llm.stream(messages=messages, model="gpt-4o"):
    print(chunk.delta, end="", flush=True)

Advanced Protocols

See references/llm-integration.md for:

  • StructuredOutput — generate Pydantic model instances or JSON schema conformant output
  • ToolSelection — function/tool calling with Tool definitions
  • Full code examples for all providers

Reference Files

Scenario Load
Full API details, all providers, advanced protocols llm-integration.md