summaryrefslogtreecommitdiff
path: root/src/agents/03-logs
diff options
context:
space:
mode:
authorCaptainJack2491 <jayrupnakawala@gmail.com>2025-11-16 19:22:42 +0000
committerCaptainJack2491 <jayrupnakawala@gmail.com>2025-11-16 19:22:42 +0000
commit1bff28dbb9dbb46a05bd8fe287c30a06a98a9d2a (patch)
tree5b79f3fdd515b733766903d91304c80ca9819f3f /src/agents/03-logs
parent666825f6cdcde8f107bc474853b1e3e13ad49370 (diff)
logging works
Diffstat (limited to 'src/agents/03-logs')
-rw-r--r--src/agents/03-logs/agent.py42
-rw-r--r--src/agents/03-logs/config.py1
-rw-r--r--src/agents/03-logs/main.py3
3 files changed, 41 insertions, 5 deletions
diff --git a/src/agents/03-logs/agent.py b/src/agents/03-logs/agent.py
index f7e6538..1f19431 100644
--- a/src/agents/03-logs/agent.py
+++ b/src/agents/03-logs/agent.py
@@ -1,32 +1,57 @@
# agent.py
from openai import OpenAI
import json
-from config import MODEL, BASE_URL, API_KEY
+import datetime
+from config import MODEL, BASE_URL, API_KEY, TEMPERATURE
from tools import tools, available_functions
class Agent:
- def __init__(self, model=MODEL, base_url=BASE_URL, api_key=API_KEY):
+ def __init__(self, model=MODEL, base_url=BASE_URL, api_key=API_KEY, temperature=TEMPERATURE):
self.client = OpenAI(base_url=base_url, api_key=api_key)
self.model = model
+ self.temperature = temperature
self.tools = tools
self.available_functions = available_functions
+ self.logs = []
def run(self, initial_prompt):
messages = [{'role': 'user', 'content': initial_prompt}]
+ self.logs.append(messages[0])
while True:
response = self.client.chat.completions.create(
model=self.model,
messages=messages,
tools=self.tools,
+ temperature=self.temperature,
)
response_message = response.choices[0].message
messages.append(response_message)
+
+ log_entry = {
+ "role": "assistant",
+ "content": response_message.content,
+ "tool_calls": [{
+ 'id': tc.id,
+ 'type': tc.type,
+ 'function': {
+ 'name': tc.function.name,
+ 'arguments': tc.function.arguments
+ }
+ } for tc in response_message.tool_calls] if response_message.tool_calls else None,
+ "response_metadata": {
+ "model": response.model,
+ "usage": dict(response.usage),
+ }
+ }
model_reasoning = getattr(response_message, 'reasoning', None)
if model_reasoning:
print(f"--- MODEL REASONING ---\n{model_reasoning}")
+ log_entry["reasoning"] = model_reasoning
+
+ self.logs.append(log_entry)
if response_message.tool_calls:
print(f"--- LLM requested tool execution ---")
@@ -39,11 +64,20 @@ class Agent:
print(f"Executing: {function_name}({function_args}) -> {function_output}")
- messages.append({
+ tool_message = {
"tool_call_id": tool_call.id,
"role": "tool",
"content": str(function_output),
- })
+ }
+ messages.append(tool_message)
+ self.logs.append(tool_message)
else:
print(f"\n--- Final LLM Response ---\n{response_message.content}")
break
+
+ def save_logs(self):
+ timestamp = datetime.datetime.now().strftime("%Y%m%d_%H%M%S")
+ log_file = f"output/log_{timestamp}.json"
+ with open(log_file, "w") as f:
+ json.dump(self.logs, f, indent=4)
+ print(f"\nLogs saved to {log_file}")
diff --git a/src/agents/03-logs/config.py b/src/agents/03-logs/config.py
index 682e5bf..5620126 100644
--- a/src/agents/03-logs/config.py
+++ b/src/agents/03-logs/config.py
@@ -2,3 +2,4 @@
MODEL = 'qwen3:0.6b'
BASE_URL = "http://127.0.0.1:11434/v1"
API_KEY = "ollama"
+TEMPERATURE = 0.7
diff --git a/src/agents/03-logs/main.py b/src/agents/03-logs/main.py
index 6b85b95..d224048 100644
--- a/src/agents/03-logs/main.py
+++ b/src/agents/03-logs/main.py
@@ -4,4 +4,5 @@ from agent import Agent
if __name__ == "__main__":
user_prompt = "check if this username is valid 'jack'."
agent = Agent()
- agent.run(user_prompt) \ No newline at end of file
+ agent.run(user_prompt)
+ agent.save_logs() \ No newline at end of file