* init server refactor * refactored websockets server/client code to use internal server API * added intentional fail on test * update workflow to try and get test to pass remotely * refactor to put websocket code in a separate subdirectory * added fastapi rest server * add error handling * modified interface return style * disabled certain tests on remote * added SSE response option for user_message * fix ws interface test * fallback for oai key * add soft fail for test when localhost is borked * add step_yield for all server related interfaces * extra catch * update toml + lock with server add-ons (add uvicorn+fastapi, move websockets to server extra) * regen lock file * added pytest-asyncio as an extra in dev * add pydantic to deps * renamed CreateConfig to CreateAgentConfig * fixed POST request for creating agent + tested it
101 lines
1.8 KiB
Python
101 lines
1.8 KiB
Python
import json
|
|
|
|
# Server -> client
|
|
|
|
|
|
def server_error(msg):
|
|
"""General server error"""
|
|
return json.dumps(
|
|
{
|
|
"type": "server_error",
|
|
"message": msg,
|
|
}
|
|
)
|
|
|
|
|
|
def server_command_response(status):
|
|
return json.dumps(
|
|
{
|
|
"type": "command_response",
|
|
"status": status,
|
|
}
|
|
)
|
|
|
|
|
|
def server_agent_response_error(msg):
|
|
return json.dumps(
|
|
{
|
|
"type": "agent_response_error",
|
|
"message": msg,
|
|
}
|
|
)
|
|
|
|
|
|
def server_agent_response_start():
|
|
return json.dumps(
|
|
{
|
|
"type": "agent_response_start",
|
|
}
|
|
)
|
|
|
|
|
|
def server_agent_response_end():
|
|
return json.dumps(
|
|
{
|
|
"type": "agent_response_end",
|
|
}
|
|
)
|
|
|
|
|
|
def server_agent_internal_monologue(msg):
|
|
return json.dumps(
|
|
{
|
|
"type": "agent_response",
|
|
"message_type": "internal_monologue",
|
|
"message": msg,
|
|
}
|
|
)
|
|
|
|
|
|
def server_agent_assistant_message(msg):
|
|
return json.dumps(
|
|
{
|
|
"type": "agent_response",
|
|
"message_type": "assistant_message",
|
|
"message": msg,
|
|
}
|
|
)
|
|
|
|
|
|
def server_agent_function_message(msg):
|
|
return json.dumps(
|
|
{
|
|
"type": "agent_response",
|
|
"message_type": "function_message",
|
|
"message": msg,
|
|
}
|
|
)
|
|
|
|
|
|
# Client -> server
|
|
|
|
|
|
def client_user_message(msg, agent_id=None):
|
|
return json.dumps(
|
|
{
|
|
"type": "user_message",
|
|
"message": msg,
|
|
"agent_id": agent_id,
|
|
}
|
|
)
|
|
|
|
|
|
def client_command_create(config):
|
|
return json.dumps(
|
|
{
|
|
"type": "command",
|
|
"command": "create_agent",
|
|
"config": config,
|
|
}
|
|
)
|