UNIT – IV: Model Context Protocol & Multi-Agent Systems
Lab programs
Experiment 1: RAG Knowledge Assistant
🎯 Aim
To develop a Retrieval-Augmented Generation (RAG) based Knowledge Assistant
using Gemini API to generate accurate answers based on given context.
🛠 Tools Required
Python
Gemini API (google-generativeai)
VS Code / IDLE
Internet Connection
⚙ Required Installation
pip install google-generativeai
📝 Step-by-Step Procedure
1. Import the required library.
2. Configure the Gemini API using API key.
3. Load the generative model.
4. Accept context input from user.
5. Accept question input from user.
6. Combine context and question using prompt.
7. Generate response using model.
8. Display the output.
💻 Full Code
import [Link] as genai
[Link](api_key="YOUR_API_KEY")
model = [Link]("gemini-1.5-flash")
def get_answer(context, question):
prompt = f"""
Use the below context to answer the question.
Context:
{context}
Question:
{question}
"""
response = model.generate_content(prompt)
return [Link]
context = input("Enter context: ")
while True:
question = input("Ask question (exit to stop): ")
if [Link]() == "exit":
break
print("Answer:", get_answer(context, question))
📤 Expected Output
User enters context and questions → Program displays accurate answers based on
context.
✅ Result
The RAG-based assistant was successfully implemented and generated context-aware
responses.
📘 Experiment 2: Multi-Agent System
🎯 Aim
To simulate multiple AI agents working collaboratively to solve a problem.
🛠 Tools Required
Python, Gemini API
⚙ Installation
pip install google-generativeai
📝 Procedure
1. Create researcher agent function.
2. Create summarizer agent function.
3. Accept topic from user.
4. Generate detailed explanation.
5. Summarize the result.
6. Display output.
💻 Code
import [Link] as genai
[Link](api_key="YOUR_API_KEY")
model = [Link]("gemini-1.5-flash")
def researcher(topic):
return model.generate_content(f"Explain {topic} in detail").text
def summarizer(content):
return model.generate_content(f"Summarize the following:\n{content}").text
topic = input("Enter topic: ")
data = researcher(topic)
result = summarizer(data)
print("\nFinal Output:\n", result)
📤 Expected Output
Displays summarized explanation of the given topic.
✅ Result
Multi-agent system successfully simulated using two AI agents.
📘 Experiment 3: Travel Planner
🎯 Aim
To generate a travel plan using AI based on user input.
🛠 Tools
Python, Gemini API
📝 Procedure
1. Define travel function.
2. Accept place and days.
3. Generate plan using prompt.
4. Display result.
💻 Code
import [Link] as genai
[Link](api_key="YOUR_API_KEY")
model = [Link]("gemini-1.5-flash")
def travel_plan(place, days):
prompt = f"Create a detailed {days}-day travel plan for {place} including places
and food."
return model.generate_content(prompt).text
place = input("Enter place: ")
days = input("Enter number of days: ")
print(travel_plan(place, days))
📤 Expected Output
Displays a detailed travel itinerary.
✅ Result
Travel plan was successfully generated.
📘 Experiment 4: Resume Reviewer
🎯 Aim
To analyze and improve resume content using AI.
🛠 Tools
Python, Gemini API
📝 Procedure
1. Accept resume input.
2. Create prompt for analysis.
3. Generate feedback.
4. Display suggestions.
💻 Code
import [Link] as genai
[Link](api_key="YOUR_API_KEY")
model = [Link]("gemini-1.5-flash")
def review_resume(resume):
prompt = f"""
Analyze the resume and provide:
- Strengths
- Weaknesses
- Improvements
Resume:
{resume}
"""
return model.generate_content(prompt).text
resume = input("Enter resume content: ")
print(review_resume(resume))
📤 Expected Output
Displays strengths, weaknesses, and suggestions.
✅ Result
Resume analysis was successfully completed.
Experiment 5: Interview Question Generator
🎯 Aim
To generate role-based interview questions using AI.
🛠 Tools Required
Python, Gemini API
⚙ Required Installation
pip install google-generativeai
📝 Step-by-Step Procedure
1. Import library and configure API
2. Define function to generate questions
3. Accept role input
4. Generate questions using prompt
5. Display output
💻 Full Code
import [Link] as genai
[Link](api_key="YOUR_API_KEY")
model = [Link]("gemini-1.5-flash")
def generate_questions(role):
prompt = f"Generate 5 interview questions for {role}"
return model.generate_content(prompt).text
role = input("Enter job role: ")
print(generate_questions(role))
📤 Expected Output
Displays interview questions related to the role.
✅ Result
Interview questions were successfully generated.
📘 Experiment 6: Study Planner
🎯 Aim
To create a personalized study plan.
📝 Procedure
1. Accept subject and days
2. Generate study plan
3. Display output
💻 Code
import [Link] as genai
[Link](api_key="YOUR_API_KEY")
model = [Link]("gemini-1.5-flash")
def study_plan(subject, days):
return model.generate_content(f"Create {days}-day study plan for {subject}").text
print(study_plan(input("Subject: "), input("Days: ")))
📤 Expected Output
Displays a study schedule.
✅ Result
Study plan successfully created.
📘 Experiment 7: Portfolio Generator
🎯 Aim
To generate portfolio content using AI.
💻 Code
import [Link] as genai
[Link](api_key="YOUR_API_KEY")
model = [Link]("gemini-1.5-flash")
def portfolio(name, skills):
return model.generate_content(f"Create portfolio for {name} with skills
{skills}").text
print(portfolio(input("Name: "), input("Skills: ")))
📤 Output
Displays portfolio details.
✅ Result
Portfolio generated successfully.
📘 Experiment 8: Q&A Assistant
🎯 Aim
To answer user questions using AI.
💻 Code
import [Link] as genai
[Link](api_key="YOUR_API_KEY")
model = [Link]("gemini-1.5-flash")
while True:
q = input("Ask question (exit to stop): ")
if q == "exit":
break
print(model.generate_content(q).text)
📤 Output
Displays answers to user queries.
✅ Result
Q&A assistant works successfully.
📘 Experiment 9: Blog Generator (Multi-Step)
🎯 Aim
To generate blog content using multi-step workflow.
💻 Code
import [Link] as genai
[Link](api_key="YOUR_API_KEY")
model = [Link]("gemini-1.5-flash")
topic = input("Enter topic: ")
title = model.generate_content("Generate a blog title on " + topic).text
intro = model.generate_content("Write introduction for " + title).text
print("Title:", title)
print("Intro:", intro)
📤 Output
Displays blog title and introduction.
✅ Result
Multi-step blog generation successful.
📘 Experiment 10: Outfit Recommendation
🎯 Aim
To suggest outfits based on user input.
💻 Code
import [Link] as genai
[Link](api_key="YOUR_API_KEY")
model = [Link]("gemini-1.5-flash")
def outfit(event):
return model.generate_content(f"Suggest outfit for {event}").text
print(outfit(input("Enter event: ")))
📤 Output
Displays outfit suggestions.
✅ Result
Outfit recommendation successful.
📘 Experiment 11: Chatbot
🎯 Aim
To develop a conversational chatbot.
💻 Code
import [Link] as genai
[Link](api_key="YOUR_API_KEY")
model = [Link]("gemini-1.5-flash")
while True:
msg = input("You: ")
if msg == "exit":
break
print("Bot:", model.generate_content(msg).text)
📤 Output
Interactive chatbot responses.
✅ Result
Chatbot works successfully.
📘 Experiment 12: Document Summarizer
🎯 Aim
To summarize large text.
💻 Code
import [Link] as genai
[Link](api_key="YOUR_API_KEY")
model = [Link]("gemini-1.5-flash")
text = input("Enter text: ")
print(model.generate_content("Summarize:\n" + text).text)
📤 Output
Short summary of text.
✅ Result
Text summarization successful.
📘 Experiment 13: Email Generator
🎯 Aim
To generate professional emails.
💻 Code
import [Link] as genai
[Link](api_key="YOUR_API_KEY")
model = [Link]("gemini-1.5-flash")
topic = input("Enter topic: ")
print(model.generate_content("Write a professional email about " + topic).text)
📤 Output
Displays formatted email.
✅ Result
Email generated successfully.
📘 Experiment 14: SQL Query Generator
🎯 Aim
To convert natural language into SQL query.
💻 Code
import [Link] as genai
[Link](api_key="YOUR_API_KEY")
model = [Link]("gemini-1.5-flash")
desc = input("Describe query: ")
print(model.generate_content("Convert to SQL:\n" + desc).text)
📤 Output
Displays SQL query.
✅ Result
SQL query generation successful.
📘 Experiment 15: Quiz Generator
🎯 Aim
To generate MCQs using AI.
💻 Code
import [Link] as genai
[Link](api_key="YOUR_API_KEY")
model = [Link]("gemini-1.5-flash")
topic = input("Enter topic: ")
print(model.generate_content("Generate MCQs on " + topic).text)
📤 Output
Displays questions with answers.
✅ Result
Quiz generation successful.
📘 Experiment 16: Chatbot with Memory
🎯 Aim
To develop chatbot with memory feature.
💻 Code
import [Link] as genai
[Link](api_key="YOUR_API_KEY")
model = [Link]("gemini-1.5-flash")
history = []
while True:
msg = input("You: ")
if msg == "exit":
break
[Link](msg)
context = " ".join(history)
print("Bot:", model.generate_content(context).text)
📤 Output
Context-aware chatbot responses.
✅ Result
Chatbot with memory implemented successfully.