Welcome to Educhain! Transform your educational content effortlessly with cutting-edge AI tools. Explore our Website and dive into the Documentation to get started.
Educhain is a powerful Python package that leverages Generative AI to create engaging and personalized educational content. From generating multiple-choice questions to crafting comprehensive lesson plans, Educhain makes it easy to apply AI in various educational scenarios.
๐ Generate Multiple Choice Questions (MCQs)
from educhain import Educhain
client = Educhain()
# Basic MCQ generation
mcq = client.qna_engine.generate_questions(
topic="Solar System",
num=3,
question_type="Multiple Choice"
)
# Advanced MCQ with custom parameters
advanced_mcq = client.qna_engine.generate_questions(
topic="Solar System",
num=3,
question_type="Multiple Choice",
difficulty_level="Hard",
custom_instructions="Include recent discoveries"
)
print(mcq.json()) # View in JSON format
๐ Create Lesson Plans
from educhain import Educhain
client = Educhain()
# Basic lesson plan
lesson = client.content_engine.generate_lesson_plan(
topic="Photosynthesis"
)
# Advanced lesson plan with specific parameters
detailed_lesson = client.content_engine.generate_lesson_plan(
topic="Photosynthesis",
duration="60 minutes",
grade_level="High School",
learning_objectives=["Understanding the process", "Identifying key components"]
)
print(lesson.json())
๐ Support for Various LLM Models
from educhain import Educhain, LLMConfig
from langchain_google_genai import ChatGoogleGenerativeAI
from langchain_openai import ChatOpenAI
# Using Gemini
gemini_model = ChatGoogleGenerativeAI(
model="gemini-1.5-pro",
google_api_key="YOUR_GOOGLE_API_KEY"
)
gemini_config = LLMConfig(custom_model=gemini_model)
gemini_client = Educhain(gemini_config)
# Using GPT-4
gpt4_model = ChatOpenAI(
model_name="gpt-4",
openai_api_key="YOUR_OPENAI_API_KEY"
)
gpt4_config = LLMConfig(custom_model=gpt4_model)
gpt4_client = Educhain(gpt4_config)
๐ Export Questions to Different Formats
from educhain import Educhain
client = Educhain()
questions = client.qna_engine.generate_questions(topic="Climate Change", num=5)
# Export to JSON
questions.json("climate_questions.json")
# Export to PDF
questions.to_pdf("climate_questions.pdf")
# Export to CSV
questions.to_csv("climate_questions.csv")
๐จ Customizable Prompt Templates
from educhain import Educhain
client = Educhain()
# Custom template for questions
custom_template = """
Generate {num} {question_type} questions about {topic}.
Ensure the questions are:
- At {difficulty_level} level
- Focus on {learning_objective}
- Include practical examples
- {custom_instructions}
"""
questions = client.qna_engine.generate_questions(
topic="Machine Learning",
num=3,
question_type="Multiple Choice",
difficulty_level="Intermediate",
learning_objective="Understanding Neural Networks",
custom_instructions="Include recent developments",
prompt_template=custom_template
)
๐ Generate Questions from Files
from educhain import Educhain
client = Educhain()
# From URL
url_questions = client.qna_engine.generate_questions_from_data(
source="https://example.com/article",
source_type="url",
num=3
)
# From PDF
pdf_questions = client.qna_engine.generate_questions_from_data(
source="path/to/document.pdf",
source_type="pdf",
num=3
)
# From Text File
text_questions = client.qna_engine.generate_questions_from_data(
source="path/to/content.txt",
source_type="text",
num=3
)
๐น Generate Questions from YouTube Videos
from educhain import Educhain
client = Educhain()
# Basic usage - Generate 3 MCQs from a YouTube video
questions = client.qna_engine.generate_questions_from_youtube(
url="https://www.youtube.com/watch?v=dQw4w9WgXcQ",
num=3
)
print(questions.json())
# Generate questions preserving original language
preserved_questions = client.qna_engine.generate_questions_from_youtube(
url="https://www.youtube.com/watch?v=dQw4w9WgXcQ",
num=2,
target_language='hi',
preserve_original_language=True # Keeps original language
)
๐ฅฝ Generate Questions from Images
from educhain import Educhain
client = Educhain() #Default is 4o-mini (make sure to use a multimodal LLM!)
question = client.qna_engine.solve_doubt(
image_source="path-to-your-image",
prompt="Explain the diagram in detail",
detail_level = "High"
)
print(question)
Reimagining Education with AI ๐ค
- ๐ QnA Engine: Generates an infinte variety of Questions
- ๐ฐ Content Engine: One-stop content generation - lesson plans, flashcards, notes etc
- ๐ Personalization Engine: Adapts to your individual level of understanding for a tailored experience.
pip install educhain
Get started with content generation in < 3 lines!
from educhain import Educhain
client = Educhain()
ques = client.qna_engine.generate_questions(topic="Newton's Law of Motion",
num=5)
print(ques)
ques.json() # ques.dict()
Generates different types of questions. See the advanced guide to create a custom question type.
# Supports "Multiple Choice" (default); "True/False"; "Fill in the Blank"; "Short Answer"
from educhain import Educhain
client = Educhain()
ques = client.qna_engine.generate_questions(topic = "Psychology",
num = 10,
question_type="Fill in the Blank"
custom_instructions = "Only basic questions")
print(ques)
ques.json() #ques.dict()
To use a custom model, you can pass a model configuration through the LLMConfig
class
Here's an example using the Gemini Model
from langchain_google_genai import ChatGoogleGenerativeAI
from educhain import Educhain, LLMConfig
gemini_flash = ChatGoogleGenerativeAI(
model="gemini-1.5-flash-exp-0827",
google_api_key="GOOGLE_API_KEY")
flash_config = LLMConfig(custom_model=gemini_flash)
client = Educhain(flash_config) #using gemini model with educhain
ques = client.qna_engine.generate_questions(topic="Psychology",
num=10)
print(ques)
ques.json() #ques.dict()
Configure your prompt templates for more control over input parameters and output quality.
from educhain import Educhain
client = Educhain()
custom_template = """
Generate {num} multiple-choice question (MCQ) based on the given topic and level.
Provide the question, four answer options, and the correct answer.
Topic: {topic}
Learning Objective: {learning_objective}
Difficulty Level: {difficulty_level}
"""
ques = client.qna_engine.generate_questions(
topic="Python Programming",
num=2,
learning_objective="Usage of Python classes",
difficulty_level="Hard",
prompt_template=custom_template,
)
print(ques)
Ingest your own data to create content. Currently supports URL/PDF/TXT.
from educhain import Educhain
client = Educhain()
ques = client.qna_engine.generate_questions_from_data(
source="https://en.wikipedia.org/wiki/Big_Mac_Index",
source_type="url",
num=5)
print(ques)
ques.json() # ques.dict()
Create interactive and detailed lesson plans.
from educhain import Educhain
client = Educhain()
plan = client.content_engine.generate_lesson_plan(
topic = "Newton's Law of Motion")
print(plan)
plan.json() # plan.dict()
- Multiple Choice Questions (MCQ)
- Short Answer Questions
- True/False Questions
- Fill in the Blank Questions
Educhain offers advanced configuration options to fine-tune its behavior. Check our advanced guide for more details. (coming soon!)
Educators worldwide are using Educhain to transform their teaching. Read our case studies to learn more.
Educhain's adoption has been growing rapidly:
- Bulk Generation
- Outputs in JSON format
- Custom Prompt Templates
- Custom Response Models using Pydantic
- Exports questions to JSON/PDF/CSV
- Support for other LLM models
- Generate questions from text/PDF file
- Integration with popular Learning Management Systems
- Mobile app for on-the-go content generation
We welcome contributions! Please see our Contribution Guide for more details.
This project is licensed under the MIT License - see the LICENSE file for details.
- For general inquiries: educhain.in
- For technical support: [email protected]
- Follow us on Twitter
For bug reports or feature requests, please open an issue on our GitHub repository.
Made with โค๏ธ by Buildfastwithai