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.9.tar.gz (6.3 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.9.tar.gz.

File metadata

File hashes

Hashes for axmp_ai_conversation_completor-0.1.9.tar.gz
Algorithm Hash digest
SHA256 203dd84b73d84eac70c4daca190962a5dd2c70e671d442b68664a329d6250d99
MD5 20925a9fc6f2d803fe8d862a40d5a742
BLAKE2b-256 d4f6a1f60f0c19a7bd01947265b454ec01860ed94ffdd4fa3823ba83b1555b62

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for axmp_ai_conversation_completor-0.1.9-py3-none-any.whl
Algorithm Hash digest
SHA256 e9587463072c810a8857831cea22bb45298e09ddc6e3841bb03731e5fafbefda
MD5 83962c9d3853e076c67681c069cd40cc
BLAKE2b-256 ab82709f528c2bc30b6433904505e55631e17b016d41de0d3d3685e1a20ee605

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