plexus.cli.score_chat.graphql_service module
GraphQL-based implementation of the Plexus score chat service.
This module provides chat functionality that works with the GraphQL API instead of Celery, while preserving all file-editing capabilities.
- class plexus.cli.score_chat.graphql_service.GraphQLChatService(session_id: str | None = None, scorecard: str | None = None, score: str | None = None, experiment_id: str | None = None, message_callback: Callable[[str], None] | None = None)
Bases:
ScoreChatServiceChat service that uses GraphQL API for persistence and messaging.
Initialize the GraphQL chat service.
- Args:
session_id: Existing chat session ID, or None to create new scorecard: Optional scorecard identifier for new sessions score: Optional score identifier for new sessions experiment_id: Optional experiment ID to associate session with message_callback: Optional callback for receiving message outputs
- __init__(session_id: str | None = None, scorecard: str | None = None, score: str | None = None, experiment_id: str | None = None, message_callback: Callable[[str], None] | None = None)
Initialize the GraphQL chat service.
- Args:
session_id: Existing chat session ID, or None to create new scorecard: Optional scorecard identifier for new sessions score: Optional score identifier for new sessions experiment_id: Optional experiment ID to associate session with message_callback: Optional callback for receiving message outputs
- async create_session(account_id: str) str
Create a new chat session in the database.
- Args:
account_id: Account ID for the session
- Returns:
Session ID of the created session
- async end_session() Dict[str, Any]
End the chat session and update its status.
- Returns:
Updated session data
- async process_message_with_graphql(message: str) Dict[str, Any]
Process a user message and return AI response via GraphQL.
- Args:
message: User message to process
- Returns:
Dictionary with response content and metadata
- async send_message(message: str, role: str = 'USER') Dict[str, Any]
Send a message and save it to the database.
- Args:
message: Message content role: Message role (USER, ASSISTANT, SYSTEM)
- Returns:
Created message data
- async plexus.cli.score_chat.graphql_service.create_chat_session(account_id: str, scorecard: str = None, score: str = None, experiment_id: str = None) GraphQLChatService
Create a new chat session.
- Args:
account_id: Account ID for the session scorecard: Optional scorecard identifier score: Optional score identifier experiment_id: Optional experiment ID to associate with
- Returns:
Initialized GraphQLChatService instance
- async plexus.cli.score_chat.graphql_service.resume_chat_session(session_id: str) GraphQLChatService
Resume an existing chat session.
- Args:
session_id: ID of the session to resume
- Returns:
GraphQLChatService instance connected to the session