Skip to main content

LangChain integration for Zunno LLM and Embeddings

Project description

LangChain Zunno Integration

A LangChain integration for Zunno LLM and Embeddings, providing easy-to-use wrappers for text generation and embeddings.

Installation

pip install langchain-zunno

Quick Start

Text Generation (LLM)

Basic Usage (Returns only response text)

from langchain_zunno import ZunnoLLM

# Create an LLM instance
llm = ZunnoLLM(model_name="mistral:latest")

# Generate text
response = llm.invoke("Hello, how are you?")
print(response)

Full Response Mode (Returns complete API response)

from langchain_zunno import ZunnoLLM

# Create an LLM instance with full response
llm = ZunnoLLM(
    model_name="mistral:latest",
    return_full_response=True
)

# Get complete API response
full_response = llm.invoke("Hello, how are you?")
print(full_response)
# Returns: {"response": "...", "model_used": "...", "tokens_used": 123, ...}

Embeddings

Basic Usage (Returns only embeddings vector)

from langchain_zunno import ZunnoLLMEmbeddings

# Create an embeddings instance
embeddings = ZunnoLLMEmbeddings(model_name="mistral:latest")

# Get embeddings for a single text
embedding = embeddings.embed_query("Hello, how are you?")
print(f"Embedding dimension: {len(embedding)}")

# Get embeddings for multiple texts
texts = ["Hello world", "How are you?", "Good morning"]
embeddings_list = embeddings.embed_documents(texts)
print(f"Number of embeddings: {len(embeddings_list)}")

Full Response Mode (Returns complete API response)

from langchain_zunno import ZunnoLLMEmbeddings

# Create an embeddings instance with full response
embeddings = ZunnoLLMEmbeddings(
    model_name="mistral:latest",
    return_full_response=True
)

# Get complete API response
full_response = embeddings.embed_query("Hello, how are you?")
print(full_response)
# Returns: {"embeddings": [...], "model_used": "...", "embedding_dimension": 4096, ...}

Async Usage

import asyncio
from langchain_zunno import ZunnoLLM, ZunnoLLMEmbeddings

async def main():
    # Async LLM
    llm = ZunnoLLM(model_name="mistral:latest")
    response = await llm.ainvoke("Hello, how are you?")
    print(response)
    
    # Async embeddings
    embeddings = ZunnoLLMEmbeddings(model_name="mistral:latest")
    embedding = await embeddings.aembed_query("Hello, how are you?")
    print(f"Embedding dimension: {len(embedding)}")

asyncio.run(main())

Factory Functions

For convenience, you can use factory functions to create instances:

from langchain_zunno import create_zunno_llm, create_zunno_embeddings

# Create LLM with full response
llm = create_zunno_llm(
    model_name="mistral:latest",
    temperature=0.7,
    max_tokens=100,
    return_full_response=True
)

# Create embeddings with full response
embeddings = create_zunno_embeddings(
    model_name="mistral:latest",
    return_full_response=True
)

Configuration

LLM Configuration

  • model_name: The name of the model to use
  • base_url: API endpoint (default: "http://15.206.124.44/v1/prompt-response")
  • temperature: Controls randomness in generation (default: 0.7)
  • max_tokens: Maximum number of tokens to generate (optional)
  • timeout: Request timeout in seconds (default: 300)
  • return_full_response: Return complete API response instead of just text (default: False)

Embeddings Configuration

  • model_name: The name of the embedding model to use
  • base_url: API endpoint (default: "http://15.206.124.44/v1/text-embeddings")
  • timeout: Request timeout in seconds (default: 300)
  • return_full_response: Return complete API response instead of just embeddings (default: False)

Response Modes

Basic Mode (Default)

  • LLM: Returns only the generated text
  • Embeddings: Returns only the embeddings vector

Full Response Mode

  • LLM: Returns complete JSON response with all API fields
  • Embeddings: Returns complete JSON response with all API fields

Example full response for LLM:

{
  "response": "Hello! I'm doing well, thank you for asking.",
  "model_used": "mistral:latest",
  "tokens_used": 15,
  "prompt_tokens": 5,
  "completion_tokens": 10,
  "total_tokens": 15
}

Example full response for embeddings:

{
  "embeddings": [0.123, -0.456, 0.789, ...],
  "model_used": "mistral:latest",
  "embedding_dimension": 4096,
  "normalized": true
}

API Endpoints

The package connects to the following Zunno API endpoints:

  • Text Generation: http://15.206.124.44/v1/prompt-response
  • Embeddings: http://15.206.124.44/v1/text-embeddings

Error Handling

The package includes comprehensive error handling:

try:
    response = llm.invoke("Hello")
except Exception as e:
    print(f"Error: {e}")

Development

Installation for Development

git clone https://github.com/zunno/langchain-zunno.git
cd langchain-zunno
pip install -e ".[dev]"

Running Tests

pytest

Code Formatting

black .
isort .

License

This project is licensed under the MIT License - see the LICENSE file for details.

Contributing

  1. Fork the repository
  2. Create a feature branch
  3. Make your changes
  4. Add tests
  5. Submit a pull request

Support

For support, please open an issue on GitHub or contact us at support@zunno.ai.

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_zunno-0.1.5.tar.gz (7.9 kB view details)

Uploaded Source

Built Distribution

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

langchain_zunno-0.1.5-py3-none-any.whl (7.0 kB view details)

Uploaded Python 3

File details

Details for the file langchain_zunno-0.1.5.tar.gz.

File metadata

  • Download URL: langchain_zunno-0.1.5.tar.gz
  • Upload date:
  • Size: 7.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.7

File hashes

Hashes for langchain_zunno-0.1.5.tar.gz
Algorithm Hash digest
SHA256 7f4bf4f88e9e7f3a7a52ec18c476a2921b0d5d4affde18c47e320381271d648a
MD5 27ac92fe8a250e0a7bac26c9832d2547
BLAKE2b-256 4226706065941a6ddaf45c5f3a59eb2f66fb8c9f610ae9af147003b6b9ca8c3a

See more details on using hashes here.

File details

Details for the file langchain_zunno-0.1.5-py3-none-any.whl.

File metadata

File hashes

Hashes for langchain_zunno-0.1.5-py3-none-any.whl
Algorithm Hash digest
SHA256 806eb1f230b6ffd5ac7d79067216bd825bc60a3b2f800d1969e10ba37c4658b6
MD5 16f40927e513ff9e31c0ec494bba97e9
BLAKE2b-256 8a2109844ac1f2ac28c79ba259d80f380ce46b775fd08a413eed650cf3a7643b

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