Schmitz005 commited on
Commit
897e33d
Β·
verified Β·
1 Parent(s): 2ea9c57

Create agents.py

Browse files
Files changed (1) hide show
  1. whale_core/agents.py +47 -0
whale_core/agents.py ADDED
@@ -0,0 +1,47 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import yaml
2
+ import openai
3
+ import os
4
+
5
+ # βœ… Set your OpenAI API key β€” use one of the two options below:
6
+
7
+ # πŸ”’ Option 1: Load from environment variable (recommended)
8
+ openai.api_key = "sk-z4C5B-O9hxSANw9drYaooVsp7SdXPw4Z29LUGkJEQhT3BlbkFJ0o-Gh0ALs1R5Zhiuchz-tn3bB_HizEuCx7s2xO_acA"
9
+
10
+ # πŸ§ͺ Optional: fail early if key not set
11
+ if not openai.api_key:
12
+ raise ValueError("❌ No OpenAI API key found. Set the environment variable OPENAI_API_KEY.")
13
+
14
+ # πŸ”“ Option 2 (for development only): Hardcode the key
15
+ # openai.api_key = "sk-...your full key..."
16
+
17
+ # βœ… Load agent configurations from YAML
18
+ def load_agents(path="agents/config.yaml"):
19
+ with open(path, "r") as f:
20
+ return yaml.safe_load(f)
21
+
22
+ # βœ… Run each agent on the input document
23
+ def run_agents_on_text(agent_cfgs, doc):
24
+ responses = {}
25
+
26
+ for agent in agent_cfgs.get("agents", []):
27
+ name = agent.get("name", "UnnamedAgent")
28
+ system_msg = agent.get("persona", "You are a helpful assistant.")
29
+ instructions = agent.get("instructions", "Please analyze this document.")
30
+ user_prompt = f"{instructions}\n\nDocument:\n{doc[:4000]}" # Use full text or chunk
31
+
32
+ try:
33
+ completion = openai.ChatCompletion.create(
34
+ model="gpt-4",
35
+ messages=[
36
+ {"role": "system", "content": system_msg},
37
+ {"role": "user", "content": user_prompt}
38
+ ],
39
+ max_tokens=300,
40
+ temperature=0.7
41
+ )
42
+ responses[name] = completion.choices[0].message["content"].strip()
43
+
44
+ except Exception as e:
45
+ responses[name] = f"⚠️ Error calling OpenAI: {str(e)}"
46
+
47
+ return responses