feat: LLM agent #12
@@ -59,10 +59,9 @@ class BDICoreAgent(BDIAgent):
|
|||||||
class SendBehaviour(OneShotBehaviour):
|
class SendBehaviour(OneShotBehaviour):
|
||||||
async def run(self) -> None:
|
async def run(self) -> None:
|
||||||
msg = Message(
|
msg = Message(
|
||||||
to=f"{settings.agent_settings.test_agent_name}@"
|
to= settings.agent_settings.test_agent_name + '@' + settings.agent_settings.host,
|
||||||
f"{settings.agent_settings.host}",
|
body= text,
|
||||||
body=text,
|
thread= "llm_request",
|
||||||
thread="llm_request",
|
|
||||||
)
|
)
|
||||||
msg.set_metadata("performative", "inform")
|
msg.set_metadata("performative", "inform")
|
||||||
await self.send(msg)
|
await self.send(msg)
|
||||||
|
|||||||
@@ -32,9 +32,6 @@ class LLMAgent(Agent):
|
|||||||
the BDI Core Agent and handle them.
|
the BDI Core Agent and handle them.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
LOCAL_LLM_URL: str = "http://127.0.0.1:1234/v1/chat/completions"
|
|
||||||
LOCAL_LLM_MODEL: str = "openai/gpt-oss-20b"
|
|
||||||
|
|
||||||
async def run(self) -> None:
|
async def run(self) -> None:
|
||||||
"""
|
"""
|
||||||
Receives SPADE messages and processes only those originating from the
|
Receives SPADE messages and processes only those originating from the
|
||||||
@@ -70,10 +67,9 @@ class LLMAgent(Agent):
|
|||||||
Sends a response message back to the BDI Core Agent.
|
Sends a response message back to the BDI Core Agent.
|
||||||
"""
|
"""
|
||||||
reply = Message(
|
reply = Message(
|
||||||
to=f"{settings.agent_settings.bdi_core_agent_name}@"
|
to= settings.agent_settings.bdi_core_agent_name + '@' + settings.agent_settings.host,
|
||||||
f"{settings.agent_settings.host}",
|
body= msg,
|
||||||
body=msg,
|
thread= "llm_response",
|
||||||
thread="llm_response",
|
|
||||||
)
|
)
|
||||||
await self.send(reply)
|
await self.send(reply)
|
||||||
self.agent.logger.info("Reply sent to BDI Core Agent")
|
self.agent.logger.info("Reply sent to BDI Core Agent")
|
||||||
@@ -87,10 +83,10 @@ class LLMAgent(Agent):
|
|||||||
"""
|
"""
|
||||||
async with httpx.AsyncClient(timeout=120.0) as client:
|
async with httpx.AsyncClient(timeout=120.0) as client:
|
||||||
response = await client.post(
|
response = await client.post(
|
||||||
self.LOCAL_LLM_URL,
|
settings.llm_settings.local_llm_url,
|
||||||
headers={"Content-Type": "application/json"},
|
headers={"Content-Type": "application/json"},
|
||||||
json={
|
json={
|
||||||
"model": self.LOCAL_LLM_MODEL,
|
"model": settings.llm_settings.local_llm_model,
|
||||||
"messages": [{"role": "user", "content": prompt}],
|
"messages": [{"role": "user", "content": prompt}],
|
||||||
"temperature": 0.3,
|
"temperature": 0.3,
|
||||||
},
|
},
|
||||||
@@ -116,10 +112,7 @@ class LLMAgent(Agent):
|
|||||||
self.logger.info("LLMAgent setup complete")
|
self.logger.info("LLMAgent setup complete")
|
||||||
|
|
||||||
template = Template()
|
template = Template()
|
||||||
template.sender = (
|
template.sender = settings.agent_settings.bdi_core_agent_name + '@' + settings.agent_settings.host
|
||||||
f"{settings.agent_settings.bdi_core_agent_name}@"
|
|
||||||
f"{settings.agent_settings.host}"
|
|
||||||
)
|
|
||||||
|
|
||||||
behaviour = self.ReceiveMessageBehaviour()
|
behaviour = self.ReceiveMessageBehaviour()
|
||||||
self.add_behaviour(behaviour, template)
|
self.add_behaviour(behaviour, template)
|
||||||
|
|||||||
@@ -12,6 +12,10 @@ class AgentSettings(BaseModel):
|
|||||||
llm_agent_name: str = "llm_agent"
|
llm_agent_name: str = "llm_agent"
|
||||||
test_agent_name: str = "test_agent"
|
test_agent_name: str = "test_agent"
|
||||||
|
|
||||||
|
class LLMSettings(BaseModel):
|
||||||
|
local_llm_url: str = "http://127.0.0.1:1234/v1/chat/completions"
|
||||||
|
local_llm_model: str = "openai/gpt-oss-20b"
|
||||||
|
|
||||||
class Settings(BaseSettings):
|
class Settings(BaseSettings):
|
||||||
app_title: str = "PepperPlus"
|
app_title: str = "PepperPlus"
|
||||||
|
|
||||||
@@ -21,6 +25,10 @@ class Settings(BaseSettings):
|
|||||||
|
|
||||||
agent_settings: AgentSettings = AgentSettings()
|
agent_settings: AgentSettings = AgentSettings()
|
||||||
|
|
||||||
|
llm_settings: LLMSettings = LLMSettings()
|
||||||
|
|
||||||
model_config = SettingsConfigDict(env_file=".env")
|
model_config = SettingsConfigDict(env_file=".env")
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
settings = Settings()
|
settings = Settings()
|
||||||
|
|||||||
Reference in New Issue
Block a user