Notes
![]() ![]() Notes - notes.io |
from pydantic import BaseModel
from vector_store import get_relevant_text, create_vector_store
from llm_processing import query_llm
from generation.generate_slides import generate_pptx
from generation.generate_quiz import generate_quiz
from generation.generate_study_guide import generate_study_guide
app = FastAPI()
# Initialize the Vector DB
vector_db = create_vector_store()
# Request Model
class GenerateRequest(BaseModel):
material_type: str
textbook: str
chapter: str
custom_notes: str = ""
# Different prompts for each material type
def get_prompt(material_type, textbook, chapter, custom_notes):
if material_type.lower() == "powerpoint slides":
return f"""
Generate an educational PowerPoint slide deck for the textbook '{textbook}', Chapter: '{chapter}'.
- Each slide should contain concise bullet points summarizing key concepts.
- Ensure an easy-to-understand format, using simple language.
- {custom_notes if custom_notes else ''}
"""
elif material_type.lower() == "quiz/test":
return f"""
Create a quiz for the textbook '{textbook}', Chapter: '{chapter}'.
- Generate 5-10 multiple-choice and short-answer questions.
- Include answer keys at the end.
- Questions should cover all major concepts.
- {custom_notes if custom_notes else ''}
"""
elif material_type.lower() == "study guide":
return f"""
Generate a detailed study guide for the textbook '{textbook}', Chapter: '{chapter}'.
- Summarize key topics with explanations.
- Include important definitions and examples.
- Format the content in an easy-to-read way.
- {custom_notes if custom_notes else ''}
"""
else:
return None
@app.post("/generate/")
async def generate_material(request: GenerateRequest):
prompt = get_prompt(request.material_type, request.textbook, request.chapter, request.custom_notes)
if not prompt:
return {"error": "Invalid material type"}
relevant_texts = get_relevant_text(prompt)
combined_text = " ".join(relevant_texts)
# Generate content using LLM
generated_content = query_llm(combined_text)
# Select appropriate generation method
if request.material_type.lower() == "powerpoint slides":
filename = generate_pptx(generated_content)
elif request.material_type.lower() == "quiz/test":
filename = generate_quiz(generated_content)
elif request.material_type.lower() == "study guide":
filename = generate_study_guide(generated_content)
else:
return {"error": "Invalid material type"}
return {"message": "Material generated successfully", "file": filename}
@app.get("/")
async def root():
return {"message": "WisTech AI Teaching Assistant is running!"}
![]() |
Notes is a web-based application for online taking notes. You can take your notes and share with others people. If you like taking long notes, notes.io is designed for you. To date, over 8,000,000,000+ notes created and continuing...
With notes.io;
- * You can take a note from anywhere and any device with internet connection.
- * You can share the notes in social platforms (YouTube, Facebook, Twitter, instagram etc.).
- * You can quickly share your contents without website, blog and e-mail.
- * You don't need to create any Account to share a note. As you wish you can use quick, easy and best shortened notes with sms, websites, e-mail, or messaging services (WhatsApp, iMessage, Telegram, Signal).
- * Notes.io has fabulous infrastructure design for a short link and allows you to share the note as an easy and understandable link.
Fast: Notes.io is built for speed and performance. You can take a notes quickly and browse your archive.
Easy: Notes.io doesn’t require installation. Just write and share note!
Short: Notes.io’s url just 8 character. You’ll get shorten link of your note when you want to share. (Ex: notes.io/q )
Free: Notes.io works for 14 years and has been free since the day it was started.
You immediately create your first note and start sharing with the ones you wish. If you want to contact us, you can use the following communication channels;
Email: [email protected]
Twitter: http://twitter.com/notesio
Instagram: http://instagram.com/notes.io
Facebook: http://facebook.com/notesio
Regards;
Notes.io Team