|
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): |
|
|
|
if not name: |
|
name = "VonNeumann" |
|
return {"Hello": "World!"} |