mirror of
https://github.com/meta-llama/llama-stack.git
synced 2025-10-04 20:14:13 +00:00
initial client + server for agentic system
This commit is contained in:
parent
13e1667e7a
commit
beb2870750
8 changed files with 166 additions and 3 deletions
59
source/client.py
Normal file
59
source/client.py
Normal file
|
@ -0,0 +1,59 @@
|
|||
import requests
|
||||
from dataclasses import dataclass, field, asdict
|
||||
from typing import List, Set, Optional, Union, Protocol
|
||||
from enum import Enum
|
||||
|
||||
import json
|
||||
|
||||
from model_types import *
|
||||
from agentic_system_types import *
|
||||
from api_definitions import *
|
||||
|
||||
class EnumEncoder(json.JSONEncoder):
|
||||
def default(self, obj):
|
||||
if isinstance(obj, Enum):
|
||||
return obj.value
|
||||
elif isinstance(obj, set):
|
||||
return list(obj)
|
||||
return json.JSONEncoder.default(self, obj)
|
||||
|
||||
|
||||
class AgenticSystemClient:
|
||||
def __init__(self, base_url: str):
|
||||
self.base_url = base_url
|
||||
|
||||
def create_agentic_system(self, request: AgenticSystemCreateRequest) -> AgenticSystemCreateResponse:
|
||||
response = requests.post(f"{self.base_url}/agentic_system/create", data=json.dumps(asdict(request), cls=EnumEncoder), headers={'Content-Type': 'application/json'})
|
||||
response.raise_for_status()
|
||||
return AgenticSystemCreateResponse(**response.json())
|
||||
|
||||
def execute_agentic_system(self, request: AgenticSystemExecuteRequest) -> Union[AgenticSystemExecuteResponse, AgenticSystemExecuteResponseStreamChunk]:
|
||||
response = requests.post(f"{self.base_url}/agentic_system/execute", data=json.dumps(asdict(request), cls=EnumEncoder), headers={'Content-Type': 'application/json'})
|
||||
response.raise_for_status()
|
||||
response_json = response.json()
|
||||
if 'turn' in response_json:
|
||||
return AgenticSystemExecuteResponse(**response_json)
|
||||
else:
|
||||
return AgenticSystemExecuteResponseStreamChunk(**response_json)
|
||||
|
||||
# Example usage
|
||||
if __name__ == "__main__":
|
||||
client = AgenticSystemClient("http://localhost:5000")
|
||||
|
||||
# Create a new agentic system
|
||||
create_request = AgenticSystemCreateRequest(
|
||||
instructions="Your instructions here",
|
||||
model=InstructModel.llama3_8b_chat,
|
||||
)
|
||||
create_response = client.create_agentic_system(create_request)
|
||||
print("Agent ID:", create_response.agent_id)
|
||||
|
||||
# Execute the agentic system
|
||||
execute_request = AgenticSystemExecuteRequest(
|
||||
agent_id=create_response.agent_id,
|
||||
messages=[Message(role="user", content="Tell me a joke")],
|
||||
turn_history=[],
|
||||
stream=False
|
||||
)
|
||||
execute_response = client.execute_agentic_system(execute_request)
|
||||
print("Execute Response:", execute_response)
|
Loading…
Add table
Add a link
Reference in a new issue