🧠 1. Membuat Logika AI (backend/agents.py)
File ini berisi "Otak" asisten riset kita. Kita gunakan teknik yang sudah dipelajari: System Instruction dan Function Calling.
import google.generativeai as genai
import os
from dotenv import load_dotenv
load_dotenv()
genai.configure(api_key=os.getenv("GOOGLE_API_KEY"))
def run_research_agent(topic: str):
# Setup Model
model = genai.GenerativeModel(
model_name='gemini-1.5-flash',
system_instruction="Kamu adalah AI Research Architect untuk fadam24.my.id. Tugasmu meriset topik secara mendalam dan memberikan ringkasan yang elegan, minimalis, dan profesional."
)
prompt = f"Lakukan riset mendalam tentang topik: {topic}. Berikan poin-poin penting dan kesimpulan akhir."
try:
response = model.generate_content(prompt)
return response.text
except Exception as e:
return f"Waduh Kay, ada error pas riset: {str(e)}"
🌐 2. Membuat Server API (backend/app.py)
File ini adalah gerbang yang akan menerima permintaan dari website kamu.
from fastapi import FastAPI
from fastapi.middleware.cors import CORSMiddleware
from pydantic import BaseModel
import agents # Memanggil file agents.py yang kita buat tadi
app = FastAPI()
# 🔐 PENTING: Izinkan Frontend akses ke Backend
app.add_middleware(
CORSMiddleware,
allow_origins=["*"], # Di tahap dev, kita izinkan semua. Nanti bisa diperketat.
allow_methods=["*"],
allow_headers=["*"],
)
class ResearchRequest(BaseModel):
topic: str
@app.get("/")
def home():
return {"message": "Server AI fadam24 Aktif!"}
@app.post("/research")
async def do_research(request: ResearchRequest):
# Menjalankan agen riset secara asynchronous
result = agents.run_research_agent(request.topic)
return {"data": result}
🚀 3. Menjalankan Server
Sekarang, buka terminal di folder /backend (pastikan venv aktif) dan jalankan:
uvicorn app:app --reload
Jika muncul pesan Uvicorn running on http://127.0.0.1:8000, selamat! Otak AI kamu sudah hidup dan siap menerima perintah.
💡 Tips Arsitek: Kenapa Pake FastAPI?
- Async: AI butuh waktu buat "mikir". FastAPI bisa nungguin AI tanpa bikin server macet.
- Auto-Docs: Coba buka
http://127.0.0.1:8000/docs. Kamu bakal dapet dokumentasi API otomatis buat ngetes perintah tanpa perlu coding frontend dulu.