Skip to main content

This library provides the functions to complete the conversation via SSE between client and LLM

Project description

AXMP AI Conversation Completor

A Python library for handling Server-Sent Events (SSE) communication between clients and Large Language Models (LLMs). This library provides a robust way to stream AI responses and handle tool calls in real-time conversations.

Features

  • Server-Sent Events (SSE) streaming support
  • Real-time AI message streaming
  • Tool calls handling and streaming
  • Structured response formatting
  • Async/await support
  • Type hints and validation using Pydantic models

Installation

pip install axmp-ai-conversation-completor

Quick Start

from axmp_ai_conversation_completor import generate_sse_response

@router.post(
    "/conversations/{thread_id}/completion",
    summary="Chat with the alert AI agent",
    response_class=EventSourceResponse,
    response_model=EventStreamResponse,
)
async def conversations_completion(
    request: Request,
    aiops_chat_request: AIOpsChatRequest,
    thread_id: str = Path(..., description="Thread ID"),
) -> EventSourceResponse:
    """docstring..."""
    # some source...
    config = RunnableConfig(
        configurable=Configuration(
            thread_id=thread_id,
            user_id=user_id,
            model=llm_model,
            temperature=temperature,
            max_tokens=aiops_settings.chatops_model_max_tokens,
        ).model_dump(),
        recursion_limit=recursion_limit,
    )

    messages = [chat_request.prompt]

    inputs = ChatOpsState(
        messages=[
            HumanMessage(content=messages[0]),
        ]
    )

    response = chatops_agent.astream(inputs, config, stream_mode=stream_mode)
       
    return EventSourceResponse(
        generate_sse_response(
            response,
            thread_id,
            llm_model=llm_model,
            stream_mode=stream_mode
        )
    )

API Reference

generate_sse_response(response, thread_id, *, llm_model=None, stream_mode="messages")

Generates Server-Sent Events (SSE) responses for AI conversations.

Parameters:

  • response (AsyncIterator[dict[str, Any] | Any]): The response iterator from the LLM
  • thread_id (str): Unique identifier for the conversation thread
  • llm_model (str | None): Name of the LLM model being used
  • stream_mode (str): Mode of streaming, defaults to "messages"

Returns:

  • AsyncIterator[EventStreamResponse]: An async iterator yielding SSE events

Event Types:

  • MESSAGE_START: Indicates the start of a new message
  • CONTENT_BLOCK_START: Indicates the start of a content block
  • CONTENT_BLOCK_DELTA: Contains incremental updates to the content
  • CONTENT_BLOCK_STOP: Indicates the end of a content block
  • MESSAGE_STOP: Indicates the end of a message

Project Structure

src/axmp_ai_conversation_completor/
├── __init__.py
├── completion/
│   └── sse_reponse_generator.py
├── scheme/
│   └── chat_messages.py
└── util/
    └── graph_stream_utils.py

Contributing

We welcome contributions! Please see our Contributing Guide for details.

License

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

Support

Authors

Acknowledgments

  • Thanks to all contributors who have helped shape this library

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

axmp_ai_conversation_completor-0.1.3.tar.gz (6.5 kB view details)

Uploaded Source

Built Distribution

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

File details

Details for the file axmp_ai_conversation_completor-0.1.3.tar.gz.

File metadata

File hashes

Hashes for axmp_ai_conversation_completor-0.1.3.tar.gz
Algorithm Hash digest
SHA256 b65b1eaabd681cd9059e3720cb7e2a9642569581cca406f0af98842d791a3e68
MD5 8b872eb72541ee865c38ef11337f7a02
BLAKE2b-256 afd77ffd54e600eefcf873b142f5192d628745e336c8d851b804eb00b45da23e

See more details on using hashes here.

File details

Details for the file axmp_ai_conversation_completor-0.1.3-py3-none-any.whl.

File metadata

File hashes

Hashes for axmp_ai_conversation_completor-0.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 87e1d3a85892e28fb55dd038526976196611052ed638ad59d342f22e27e972fd
MD5 f4bcb4caf38eae22b00302716a294ce1
BLAKE2b-256 967c1ef03886f8a31e68288a8f76e521e8e6be1e2919fbad2825436d62f922a3

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