Spaces:
Runtime error
Runtime error
from fastapi import FastAPI, Response | |
from pydantic import BaseModel | |
from huggingface_hub import InferenceClient | |
import graphviz | |
app = FastAPI() | |
# Initialize the inference client for the AI model | |
client = InferenceClient("nvidia/Llama-3.1-Nemotron-70B-Instruct-HF") | |
class CourseRequest(BaseModel): | |
course_name: str | |
def format_prompt(course_name: str): | |
return f"As an expert in education, please generate a detailed roadmap for the course '{course_name}'. Include key topics." | |
def generate_roadmap(item: CourseRequest): | |
prompt = format_prompt(item.course_name) | |
stream = client.text_generation(prompt, max_new_tokens=200) | |
output = "" | |
for response in stream: | |
output += response.token.text | |
return output | |
def create_diagram(roadmap_text: str): | |
dot = graphviz.Digraph() | |
# Split the roadmap text into lines or sections for diagram creation | |
lines = roadmap_text.split('\n') | |
for i, line in enumerate(lines): | |
dot.node(str(i), line.strip()) # Create a node for each topic | |
if i > 0: | |
dot.edge(str(i - 1), str(i)) # Connect nodes sequentially | |
return dot | |
async def generate_roadmap_endpoint(course_request: CourseRequest): | |
roadmap_text = generate_roadmap(course_request) | |
diagram = create_diagram(roadmap_text) | |
# Render the diagram to a PNG image | |
diagram_path = "/tmp/roadmap" | |
diagram.render(diagram_path, format='png', cleanup=True) | |
with open(diagram_path + ".png", "rb") as f: | |
return Response(content=f.read(), media_type="image/png") | |