warfareagent / app.py
therealblist's picture
Update app.py
3d1f220 verified
Raw
History Blame Contribute Delete
2.43 kB
from crewai import Agent, Task, Crew
from langchain_openai import ChatOpenAI
import gradio as gr
import os
# ===== API Key =====
os.environ["OPENAI_API_KEY"] = os.getenv("OPENAI_API_KEY", "your_api_key_here")
# ===== Shared LLM =====
llm = ChatOpenAI(model="gpt-4o-mini", temperature=0.7)
# ===== Agents =====
strategist = Agent(
role="Mission Strategist",
goal="Create high-level fictional guerrilla mission strategies for a simulation game.",
backstory="An experienced tactician specializing in unconventional strategy for fictional settings.",
llm=llm
)
logistician = Agent(
role="Operations Logistician",
goal="Plan resources, equipment, and support needed for the fictional mission.",
backstory="Expert in resource management for simulated missions.",
llm=llm
)
scout = Agent(
role="Field Scout",
goal="Provide fictional reconnaissance details about the mission area.",
backstory="A skilled recon character who gathers terrain intel in fictional worlds.",
llm=llm
)
# ===== Tasks =====
task1 = Task(
description="Analyze the user's fictional mission request and outline a strategy.",
expected_output="A concise, high-level fictional mission strategy in bullet points.",
agent=strategist
)
task2 = Task(
description="Based on the strategy, list required resources and logistical steps.",
expected_output="A detailed list of fictional resources, equipment, and logistics plan.",
agent=logistician
)
task3 = Task(
description="Provide fictional terrain and environmental information to aid planning.",
expected_output="A terrain report describing fictional environment, obstacles, and opportunities.",
agent=scout
)
# ===== Crew =====
crew = Crew(agents=[strategist, logistician, scout], tasks=[task1, task2, task3], verbose=True)
# ===== Gradio Function =====
def run_mission_planner(mission_request):
result = crew.kickoff(inputs={"input": mission_request})
return str(result)
# ===== UI =====
with gr.Blocks() as demo:
gr.Markdown("# 🗺️ Fictional Guerrilla Mission Planner (CrewAI Demo)")
mission_input = gr.Textbox(label="Enter your fictional mission scenario", lines=4)
output_box = gr.Textbox(label="Generated Mission Plan")
submit_btn = gr.Button("Generate Plan")
submit_btn.click(run_mission_planner, inputs=mission_input, outputs=output_box)
if __name__ == "__main__":
demo.launch()