from fastapi import FastAPI from gemiwrap import GeminiWrapper from google import genai from google.genai import types import json_repair from functools import partial import os if os.path.exists(".env"): from dotenv import load_dotenv load_dotenv() app = FastAPI() geminiWrapper = partial(GeminiWrapper, model_name="gemini-2.5-flash", schema=genai.types.Schema( type = genai.types.Type.OBJECT, required = ["title", "content"], properties = { "title": genai.types.Schema( type = genai.types.Type.STRING, ), "content": genai.types.Schema( type = genai.types.Type.STRING, ), }, ), delete_files=True ) @app.get("/") def greet_json(): return {"Hello": "World!"} @app.get("/breaking_news") def breaking_news(): user_prompt = None with open("breaking_news.md", 'r') as file: user_prompt = file.read() grounding_tool = types.Tool( google_search=types.GoogleSearch() ) model_responses = geminiWrapper(tools=[grounding_tool], response_mime_type="text/plain").send_message(user_prompt=user_prompt) return json_repair.loads(model_responses[0]) @app.get("/hacker_news") def hacker_news(): with open("test.txt", 'w') as file: file.write("Hey, Hey") text = None with open("test.txt", 'r') as file: text = file.read() return {"Hello": text} @app.get("/hackers_law") def hackers_law(): user_prompt = None with open("hackers_law.md", 'r') as file: user_prompt = file.read() model_responses = geminiWrapper().send_message(user_prompt=user_prompt) return json_repair.loads(model_responses[0]) @app.get("/pdf_crux") def pdf_crux(name: str): # name : VonNeumann, hacker_laws if not name: name = "VonNeumann" return {"Hello": "World!"}