96 lines
No EOL
2.9 KiB
Python
96 lines
No EOL
2.9 KiB
Python
#!/usr/bin/env python3
|
|
"""
|
|
Test script to demonstrate the improved method signature format.
|
|
This shows how the AI will receive clear parameter information without automatic result labels.
|
|
"""
|
|
|
|
import sys
|
|
import os
|
|
sys.path.append(os.path.dirname(os.path.abspath(__file__)))
|
|
|
|
from modules.workflow.serviceContainer import ServiceContainer
|
|
from modules.interfaces.interfaceAppModel import User
|
|
from modules.interfaces.interfaceChatModel import ChatWorkflow
|
|
from datetime import datetime, UTC
|
|
|
|
def test_method_signatures():
|
|
"""Test the improved method signature format"""
|
|
|
|
# Create test user and workflow
|
|
user = User(
|
|
id="test_user",
|
|
username="testuser",
|
|
language="en",
|
|
mandateId="test_mandate"
|
|
)
|
|
|
|
workflow = ChatWorkflow(
|
|
id="test_workflow",
|
|
mandateId="test_mandate",
|
|
status="active",
|
|
currentRound=1,
|
|
lastActivity=datetime.now(UTC).isoformat(),
|
|
startedAt=datetime.now(UTC).isoformat(),
|
|
messages=[]
|
|
)
|
|
|
|
# Create service container
|
|
container = ServiceContainer(user, workflow)
|
|
|
|
# Get and display method list
|
|
print("=" * 80)
|
|
print("IMPROVED METHOD SIGNATURES")
|
|
print("=" * 80)
|
|
print("The AI will now receive clear parameter information without automatic result labels.")
|
|
print("The AI must set resultLabel according to the format: documentList_uuid_descriptive_label")
|
|
print()
|
|
|
|
method_list = container.getMethodsList()
|
|
|
|
print("AVAILABLE METHODS:")
|
|
print("-" * 40)
|
|
for i, method in enumerate(method_list, 1):
|
|
print(f"{i:2d}. {method}")
|
|
|
|
print()
|
|
print("=" * 80)
|
|
print("EXAMPLE OF HOW AI SHOULD SET RESULT LABELS:")
|
|
print("=" * 80)
|
|
print("""
|
|
{
|
|
"status": "pending",
|
|
"feedback": "I will analyze the Excel file and create a summary report.",
|
|
"actions": [
|
|
{
|
|
"method": "excel",
|
|
"action": "read",
|
|
"parameters": {
|
|
"fileId": "document_123_sales_data.xlsx",
|
|
"connectionReference": "connection_456_msft_user@example.com",
|
|
"sheetName": "Sheet1"
|
|
},
|
|
"resultLabel": "documentList_abc123_excel_data"
|
|
},
|
|
{
|
|
"method": "document",
|
|
"action": "analyze",
|
|
"parameters": {
|
|
"fileId": "documentList_abc123_excel_data"
|
|
},
|
|
"resultLabel": "documentList_def456_analysis_results"
|
|
}
|
|
]
|
|
}
|
|
""")
|
|
|
|
print("=" * 80)
|
|
print("KEY IMPROVEMENTS:")
|
|
print("=" * 80)
|
|
print("1. Clear parameter types and descriptions")
|
|
print("2. No automatic result labels - AI must set them")
|
|
print("3. Consistent format: documentList_uuid_descriptive_label")
|
|
print("4. Better parameter validation through type information")
|
|
print("5. Clear handover between actions using result labels")
|
|
|
|
if __name__ == "__main__":
|
|
test_method_signatures() |