mirror of
https://github.com/cpacker/MemGPT.git
synced 2025-06-03 04:30:22 +00:00

Co-authored-by: Sarah Wooders <sarahwooders@gmail.com> Co-authored-by: Kevin Lin <kl2806@columbia.edu> Co-authored-by: Kevin Lin <klin5061@gmail.com>
66 lines
1.8 KiB
Python
66 lines
1.8 KiB
Python
import os
|
|
import threading
|
|
import time
|
|
|
|
import pytest
|
|
from dotenv import load_dotenv
|
|
from letta_client import Letta, MessageCreate
|
|
|
|
|
|
def run_server():
|
|
load_dotenv()
|
|
|
|
from letta.server.rest_api.app import start_server
|
|
|
|
print("Starting server...")
|
|
start_server(debug=True)
|
|
|
|
|
|
@pytest.fixture(
|
|
scope="module",
|
|
)
|
|
def client(request):
|
|
# Get URL from environment or start server
|
|
server_url = os.getenv("LETTA_SERVER_URL", f"http://localhost:8283")
|
|
if not os.getenv("LETTA_SERVER_URL"):
|
|
print("Starting server thread")
|
|
thread = threading.Thread(target=run_server, daemon=True)
|
|
thread.start()
|
|
time.sleep(5)
|
|
print("Running client tests with server:", server_url)
|
|
|
|
# create the Letta client
|
|
yield Letta(base_url=server_url, token=None)
|
|
|
|
|
|
def test_initial_sequence(client: Letta):
|
|
# create an agent
|
|
agent = client.agents.create(
|
|
memory_blocks=[{"label": "human", "value": ""}, {"label": "persona", "value": ""}],
|
|
model="letta/letta-free",
|
|
embedding="letta/letta-free",
|
|
initial_message_sequence=[
|
|
MessageCreate(
|
|
role="assistant",
|
|
content="Hello, how are you?",
|
|
),
|
|
MessageCreate(role="user", content="I'm good, and you?"),
|
|
],
|
|
)
|
|
|
|
# list messages
|
|
messages = client.agents.messages.list(agent_id=agent.id)
|
|
response = client.agents.messages.create(
|
|
agent_id=agent.id,
|
|
messages=[
|
|
MessageCreate(
|
|
role="user",
|
|
content="hello assistant!",
|
|
)
|
|
],
|
|
)
|
|
assert len(messages) == 3
|
|
assert messages[0].message_type == "system_message"
|
|
assert messages[1].message_type == "assistant_message"
|
|
assert messages[2].message_type == "user_message"
|