63 lines
1.7 KiB
Python
63 lines
1.7 KiB
Python
from memgpt.functions.schema_generator import generate_schema
|
|
|
|
|
|
def send_message(self, message: str):
|
|
"""
|
|
Sends a message to the human user.
|
|
|
|
Args:
|
|
message (str): Message contents. All unicode (including emojis) are supported.
|
|
|
|
Returns:
|
|
Optional[str]: None is always returned as this function does not produce a response.
|
|
"""
|
|
return None
|
|
|
|
|
|
def send_message_missing_types(self, message):
|
|
"""
|
|
Sends a message to the human user.
|
|
|
|
Args:
|
|
message (str): Message contents. All unicode (including emojis) are supported.
|
|
|
|
Returns:
|
|
Optional[str]: None is always returned as this function does not produce a response.
|
|
"""
|
|
return None
|
|
|
|
|
|
def send_message_missing_docstring(self, message: str):
|
|
return None
|
|
|
|
|
|
def test_schema_generator():
|
|
# Check that a basic function schema converts correctly
|
|
correct_schema = {
|
|
"name": "send_message",
|
|
"description": "Sends a message to the human user.",
|
|
"parameters": {
|
|
"type": "object",
|
|
"properties": {"message": {"type": "string", "description": "Message contents. All unicode (including emojis) are supported."}},
|
|
"required": ["message"],
|
|
},
|
|
}
|
|
generated_schema = generate_schema(send_message)
|
|
print(f"\n\nreference_schema={correct_schema}")
|
|
print(f"\n\ngenerated_schema={generated_schema}")
|
|
assert correct_schema == generated_schema
|
|
|
|
# Check that missing types results in an error
|
|
try:
|
|
_ = generate_schema(send_message_missing_types)
|
|
assert False
|
|
except:
|
|
pass
|
|
|
|
# Check that missing docstring results in an error
|
|
try:
|
|
_ = generate_schema(send_message_missing_docstring)
|
|
assert False
|
|
except:
|
|
pass
|