Skip to main content

LangChain integration for AstarCloud chat models

Project description

LangChain AstarCloud

A LangChain integration for AstarCloud chat models, providing a drop-in replacement for other chat model providers like OpenAI and Groq.

Installation

pip install langchain-astarcloud

Quick Start

from langchain_astarcloud import ChatAstarCloud

# Initialize the model
llm = ChatAstarCloud(
    model="gpt-4.1",
    api_key="your-api-key"  # or set ASTARCLOUD_API_KEY env var
)

# Use it like any other LangChain chat model
response = llm.invoke("Hello, how are you?")
print(response.content)

Features

  • Drop-in replacement: Works seamlessly with existing LangChain and LangGraph applications
  • Async support: Full async/await support for better performance
  • Streaming: Real-time response streaming
  • Tool calling: Support for function/tool calling on compatible models
  • Type hints: Full type safety with modern Python typing

Supported Models

The following models are available:

  • gpt-4.1 - Latest GPT-4 model with tool calling support
  • gpt-4.1-mini - Faster, more cost-effective variant with tool calling
  • gpt-4.1-nano - Ultra-fast model for simple tasks with tool calling
  • astar-gpt-4.1 - AstarCloud's optimized variant with tool calling

Usage Examples

Basic Chat

from langchain_astarcloud import ChatAstarCloud

llm = ChatAstarCloud(model="gpt-4.1", api_key="sk-...")

response = llm.invoke("What's the capital of Norway?")
print(response.content)

With LangChain Expression Language (LCEL)

from langchain_core.prompts import ChatPromptTemplate
from langchain_astarcloud import ChatAstarCloud

prompt = ChatPromptTemplate.from_messages([
    ("system", "You are a helpful assistant."),
    ("human", "{question}")
])

llm = ChatAstarCloud(model="gpt-4.1")

chain = prompt | llm

response = chain.invoke({"question": "Explain quantum computing"})

Streaming Responses

from langchain_astarcloud import ChatAstarCloud

llm = ChatAstarCloud(model="gpt-4.1")

for chunk in llm.stream("Write a short story"):
    print(chunk.content, end="", flush=True)

Async Usage

import asyncio
from langchain_astarcloud import ChatAstarCloud

async def main():
    llm = ChatAstarCloud(model="gpt-4.1")
    
    response = await llm.ainvoke("Hello!")
    print(response.content)
    
    # Async streaming
    async for chunk in llm.astream("Tell me a joke"):
        print(chunk.content, end="", flush=True)

asyncio.run(main())

Tool Calling

from langchain_core.tools import tool
from langchain_astarcloud import ChatAstarCloud

@tool
def get_weather(city: str) -> str:
    """Get the weather for a city."""
    # Your weather API logic here
    return f"The weather in {city} is sunny and 22°C"

llm = ChatAstarCloud(model="gpt-4.1").bind_tools([get_weather])

response = llm.invoke("What's the weather in Oslo?")
print(response.content)
print(response.tool_calls)

With LangGraph

from langgraph.prebuilt import ToolNode
from langchain_astarcloud import ChatAstarCloud

llm = ChatAstarCloud(model="gpt-4.1").bind_tools([get_weather])

# LangGraph treats it like any other chat model
tool_node = ToolNode([get_weather])
result = llm.invoke("What's the weather in Bergen?")

Configuration

Environment Variables

Set your API key as an environment variable:

export ASTARCLOUD_API_KEY="your-api-key"

Constructor Parameters

llm = ChatAstarCloud(
    model="gpt-4.1",           # Required: Model name
    api_key="your-key",        # Optional: API key (uses env var if not provided)
    api_base="https://api.astarcloud.no",  # Optional: API base URL
    timeout=30.0,              # Optional: Request timeout in seconds
    temperature=0.7,           # Optional: Sampling temperature
    max_tokens=1000,           # Optional: Maximum tokens to generate
    # ... other model parameters
)

Error Handling

from langchain_astarcloud import ChatAstarCloud

llm = ChatAstarCloud(model="gpt-4.1")

try:
    # This will raise an error for unsupported models
    llm_with_tools = llm.bind_tools([some_tool])
    if llm.model not in {"gpt-4.1", "gpt-4.1-mini", "gpt-4.1-nano", "astar-gpt-4.1"}:
        print("Tools not supported for this model")
except ValueError as e:
    print(f"Error: {e}")

Development

To contribute to this project:

# Clone the repository
git clone https://github.com/ASTAR-CLOUD/langchain_astarcloud.git
cd langchain_astarcloud

# Install in development mode
pip install -e ".[dev]"

# Run tests
pytest

# Format code
black .
isort .

# Type checking
mypy langchain_astarcloud

License

This project is licensed under the MIT License.

Support

For support or questions:

  • Open an issue on GitHub
  • Contact AstarCloud support

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

langchain_astarcloud-0.1.17.tar.gz (7.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

langchain_astarcloud-0.1.17-py3-none-any.whl (7.0 kB view details)

Uploaded Python 3

File details

Details for the file langchain_astarcloud-0.1.17.tar.gz.

File metadata

  • Download URL: langchain_astarcloud-0.1.17.tar.gz
  • Upload date:
  • Size: 7.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.11.8

File hashes

Hashes for langchain_astarcloud-0.1.17.tar.gz
Algorithm Hash digest
SHA256 17c45979eba9974bab72fcf651c928e60feb2acb0a378a1faa4086431962311b
MD5 d6655a1606678709b50c8e916817efff
BLAKE2b-256 b27d4a95c5a4e32a1f229072f19222b094f83f9723d79c7a6b0a3c45f1112da1

See more details on using hashes here.

File details

Details for the file langchain_astarcloud-0.1.17-py3-none-any.whl.

File metadata

File hashes

Hashes for langchain_astarcloud-0.1.17-py3-none-any.whl
Algorithm Hash digest
SHA256 1eb5038d6c7762be6c847cd34a68baf631d8095e914db69fa7a3b6242502fd52
MD5 74a2d85ac875ed1540fe874c40f7e07a
BLAKE2b-256 d237e4e920f115c90b9fabfdbafcbdf0614f4a5ce416d0a2cef617e8b8b0a717

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page