Skip to main content

A Python utils SDK for xpander.ai services.

Project description

xpander_utils Package Development Guide

Overview

xpander_utils is a Python utilities SDK for xpander.ai services.
It provides adapters, helpers, and utilities to integrate and enhance the development of AI agents, workflows, and more.


Installation

Install from PyPI

To use the xpander_utils package in your project, install it via pip:

pip install xpander-utils

Install Locally (Development Mode)

If you want to contribute or modify the package, clone the repository and install it locally in editable mode:

pip install -e .

This allows you to make changes to the source code without reinstalling the package after each modification.


Usage Example

Here's a simple example using SmolAgentsAdapter to bridge between xpander.ai and smolagents:

from smolagents import OpenAIServerModel, ToolCallingAgent
from xpander_utils.sdk.adapters import SmolAgentsAdapter

# API keys
llm_api_key = "{YOUR_LLM_KEY}"
xpander_api_key = "{YOUR_API_KEY}"

# Initialize Xpander agent
xpander = SmolAgentsAdapter(agent_id="{YOUR_AGENT_ID}", api_key=xpander_api_key)

# Initialize model
model = OpenAIServerModel(
    model_id="gpt-4o",
    api_key=llm_api_key
)

# Add a task to Xpander 
prompt = "get the longest tag"
xpander.add_task(input=prompt)

# Build the agent using Xpander's tools
agent = ToolCallingAgent(
    step_callbacks=[xpander.step_callback()],
    tools=xpander.get_tools(),
    model=model,
    prompt_templates={"system_prompt": xpander.get_system_prompt()}
)

# Initialize memory from Xpander
xpander.init_memory(agent=agent)

# Run the agent
result = agent.run(task=prompt, reset=False)

Dependencies

The package requires the following libraries:

  • pydantic
  • loguru
  • xpander-sdk
  • httpx
  • httpx_sse

Optional / Extras

Additional functionality can be installed with extras:

Extra Libraries Installed
smolagents smolagents
llama-index llama_index
chainlit chainlit
agno agno

Example to install with extras:

pip install "xpander-utils[smolagents]"

You can combine extras:

pip install "xpander-utils[smolagents,llama-index,agno]"

AgnoAdapter Example

Here's an example using AgnoAdapter to integrate xpander.ai with agno:

import asyncio
from agno.agent import Agent
from agno.models.openai import OpenAIChat
from xpander_utils.sdk.adapters import AgnoAdapter

async def main():
    # Initialize AgnoAdapter
    adapter = AgnoAdapter(
        agent_id="{YOUR_AGENT_ID}",
        api_key="{YOUR_XPANDER_API_KEY}"
    )
    
    # Add task to xpander
    adapter.add_task(input="Send a welcome email")
    
    # Get tools and create agno agent
    tools = adapter.get_tools()
    agent = Agent(
        model=OpenAIChat(id="gpt-4o-mini", api_key="{YOUR_OPENAI_API_KEY}"),
        tools=tools,
        instructions=adapter.get_system_prompt(),
        add_history_to_messages=True,
        markdown=True
    )
    
    # Run the agent
    response = await agent.arun("Send an email with subject 'Hello' to user@example.com")
    print(response.content)

# Run the async function
asyncio.run(main())

Supported Python Versions

This package officially supports Python >= 3.12.7.

Ensure you are using a compatible Python version for full functionality.


License

This project is licensed under the MIT License.


Development Notes

  • Source code is located under the src/ directory.
  • Package discovery is handled via find_packages(where="src").
  • long_description for the package is directly pulled from README.md.

Project details


Release history Release notifications | RSS feed

Download files

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

Source Distribution

xpander_utils-0.0.122.tar.gz (27.1 kB view details)

Uploaded Source

Built Distribution

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

xpander_utils-0.0.122-py3-none-any.whl (31.7 kB view details)

Uploaded Python 3

File details

Details for the file xpander_utils-0.0.122.tar.gz.

File metadata

  • Download URL: xpander_utils-0.0.122.tar.gz
  • Upload date:
  • Size: 27.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.10

File hashes

Hashes for xpander_utils-0.0.122.tar.gz
Algorithm Hash digest
SHA256 2a0b9b7a62a29c27e344bf703dab35d5a3f580d378aac55fe5f23240be1e06ba
MD5 09083714b57afdde57e0bfd7c5b6feb3
BLAKE2b-256 5892854d5d3e1777437604086be5b9f996b2548253a1e6742e5e603d1deb6f36

See more details on using hashes here.

File details

Details for the file xpander_utils-0.0.122-py3-none-any.whl.

File metadata

File hashes

Hashes for xpander_utils-0.0.122-py3-none-any.whl
Algorithm Hash digest
SHA256 d3ad99581f3dd76cc77db9a45ea1f96c95e5b71697c15548c09efd82679c93b4
MD5 c959505342513db9c8ec7ccf8c94e3f5
BLAKE2b-256 05a877f2f4fe0fea01d9e5d64632dfbf5fb8ce45a0772e4d0a51c22d3c1ab59e

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