Spaces:
Build error
Build error
import json | |
from typing import Any, Literal | |
import httpx | |
from pydantic import BaseModel | |
from openhands.core.logger import openhands_logger as logger | |
class FeedbackDataModel(BaseModel): | |
version: str | |
email: str | |
polarity: Literal['positive', 'negative'] | |
feedback: Literal[ | |
'positive', 'negative' | |
] # TODO: remove this, its here for backward compatibility | |
permissions: Literal['public', 'private'] | |
trajectory: list[dict[str, Any]] | None | |
FEEDBACK_URL = 'https://share-od-trajectory-3u9bw9tx.uc.gateway.dev/share_od_trajectory' | |
def store_feedback(feedback: FeedbackDataModel) -> dict[str, str]: | |
# Start logging | |
feedback.feedback = feedback.polarity | |
display_feedback = feedback.model_dump() | |
if 'trajectory' in display_feedback: | |
display_feedback['trajectory'] = ( | |
f'elided [length: {len(display_feedback["trajectory"])}' | |
) | |
if 'token' in display_feedback: | |
display_feedback['token'] = 'elided' | |
logger.debug(f'Got feedback: {display_feedback}') | |
# Start actual request | |
response = httpx.post( | |
FEEDBACK_URL, | |
headers={'Content-Type': 'application/json'}, | |
json=feedback.model_dump(), | |
) | |
if response.status_code != 200: | |
raise ValueError(f'Failed to store feedback: {response.text}') | |
response_data: dict[str, str] = json.loads(response.text) | |
logger.debug(f'Stored feedback: {response.text}') | |
return response_data | |