Spaces:
Sleeping
Sleeping
File size: 1,308 Bytes
c4d164c 5f51343 e5a4f39 c4d164c e5a4f39 c4d164c e5a4f39 c4d164c e5a4f39 5f51343 e5a4f39 5f51343 e5a4f39 dc12033 e5a4f39 dc12033 5f51343 acad99d 5f51343 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 |
from typing import Literal
from dataclasses import dataclass
from utils.groq import query_groq
@dataclass
class ACPMessage:
sender: str
receiver: str
performative: Literal["request", "inform"]
content: str
def to_dict(self):
return {
"sender": self.sender,
"receiver": self.receiver,
"performative": self.performative,
"content": self.content
}
class BaseAgent:
def __init__(self, name: str, role: str, model: str = "llama3-8b-8192"):
self.name = name
self.role = role
self.model = model
def create_message(self, receiver, performative, content):
return ACPMessage(
sender=self.name,
receiver=receiver,
performative=performative,
content=content
)
def respond(self, content: str) -> str:
prompt = f"You are {self.name}, a {self.role}.\nUser: {content}\nYou:"
reply = query_groq(prompt, model=self.model)
return reply
def receive_message(self, message: ACPMessage) -> ACPMessage:
reply = self.respond(message.content)
return ACPMessage(
sender=self.name,
receiver=message.sender,
performative="inform",
content=reply
)
|