Files
letta-server/memgpt/server/ws_api/protocol.py
Charles Packer b7427e2de7 API server refactor + REST API (#593)
* 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
2023-12-11 15:08:42 -08:00

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,
}
)