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") | |