We may earn an affiliate commission when you visit our partners.
Course image
Udemy logo

LlamaIndex- Develop LLM powered applications with LlamaIndex

Eden Marco

Welcome to first LlamaIndex Udemy course - Unleashing the Power of LLM. This comprehensive course is designed to teach you how to QUICKLY harness the power the LlamaIndex library for LLM applications. This course will equip you with the skills and knowledge necessary to develop cutting-edge LLM solutions for a diverse range of topics.

Read more

Welcome to first LlamaIndex Udemy course - Unleashing the Power of LLM. This comprehensive course is designed to teach you how to QUICKLY harness the power the LlamaIndex library for LLM applications. This course will equip you with the skills and knowledge necessary to develop cutting-edge LLM solutions for a diverse range of topics.

Please note that this is not a course for beginners. This course assumes that you have a background in software engineering and are proficient in Python. I will be using Pycharm IDE but you can use any editor you'd like since we only use basic feature of the IDE like debugging and running scripts.In this course, you will embark on a journey from scratch to building a real-world LLM powered application using LlamaIndex. We are going to do so by build the main application:

Documentation Helper- Create chatbot over a python package documentation. (and over any other data you would like)

The topics covered in this course include:

  • LlamaIndex

  • Retrieval Augmentation Generation

  • Vectorstores (Pinecone)

  • Node Parers-  TextSplitters

  • QueryEngines, ChatEngines

  • Streamlit (for UI)

  • Agents, LLM Reasoning

  • ReAct

  • Output Parsers

  • LLMs: Few shots prompting, Chain of Thought, ReAct prompting

Throughout the course, you will work on hands-on exercises and real-world projects to reinforce your understanding of the concepts and techniques covered. By the end of the course, you will be proficient in using LlamaIndex to create powerful, efficient, and versatile LLM applications for a wide array of usages.This is not just a course, it's  also  a community. Along with lifetime access to the course, you'll get:

  1. Dedicated 1 on 1 troubleshooting support with me

  2. Github links with additional AI resources, FAQ, troubleshooting guides

  3. Access to an exclusive Discord community to connect with other learners

  4. No extra cost for continuous updates and improvements to the course

This course assumes that you have a background in software engineering and are proficient in Python. I will be using Pycharm/ VSCode IDE but you can use any editor you'd like since we only use basic feature of the IDE like debugging and running scripts.

Enroll now

What's inside

Learning objectives

  • Become proficient in llamaindex
  • Have an end to end working llamaindex based generative ai application
  • Prompt engineering theory: chain of thought, react, few shot prompting and understand how llamaindex is built under the hood
  • Understand how to navigate inside the llamaindex opensource codebase
  • Large language models theory for software engineers
  • Vectorestores/ vector databases (pinecone, faiss,)
  • Retrieval augmentation generation (rag)

Syllabus

Introduction
What is Llamaindex
Course's discord server
Write your first LlamaIndex code
Read more

Goal of video:

In this video, we will set up our project by cloning a branch, configuring PyCharm, installing dependencies, and building an Icebreaker file. We'll also introduce the LanChain framework.


Topics covered:

  • Configuring PyCharm:
    We'll configure PyCharm by setting up the Python interpreter and creating a virtual environment. This is important to ensure our project is aligned with the correct interpreter and that we have a clean environment to work in.

  • Installing dependencies: We'll use pip to install the necessary dependencies for our project, including the Lanchang framework. This step is essential to ensure we have all the necessary packages to build our application.

  • Introduction to the LlamaIndex framework:
    We'll provide a quick introduction to the LlamaIndex framework, explaining its abstractions like chains and why it's become so popular among developers.


  • Configuring runners:
    We'll add a new runner to PyCharm and configure it to run our main.py file.

  • Installing a code formatter:
    We'll install the code formatter Black, which will help us maintain consistent formatting in our Python code. This is a best practice in software development and will help ensure that our code is clean, readable, and maintainable.

To summarize: In this video, we'll show you how to set up your project by cloning a Git branch, configuring PyCharm, and installing dependencies. We'll also provide a quick introduction to the LlamaIndex framework, build an main.py file, and configure runners to run it. Finally, we'll install a code formatter to ensure our code is consistent and readable. By the end of this video, you'll be ready to start writing your first LlamaIndex code.

Your First LlamaIndex Index
Quick Check In
Documentation helper
What are we building?
Retrieval Augmentation Generation (RAG) Theory: Vectorstores, Embeddings
Downloading the LlamaIndex Documentation
Setting up our development environment
LlamaIndex core abstractions: Pipeline imported classes
Loading and Chunkifying the LlamaIndex docs into LlamaIndex nodes
Ingestion the LlamaIndex nodes in Pinecone vectorstore
QueryEngine & Retrieval Augmentation with LlamaIndex
Streamlit Frontend
Citations and Listing source nodes
Node Post Processors- SentenceEmbeddingOptimizer, DuplicatePostProcessor
Learn how things are implemented in LlamaIndex
Under the hood- Retrieval
Under the hood- Augmentation Generation
Agents, ReAct, LlamaIndex, Tools

Data Agents

Data Agents are LLM-powered knowledge workers in LlamaIndex that can intelligently perform various tasks over your data, in both a “read” and “write” function. They are capable of the following:

  • Perform automated search and retrieval over different types of data - unstructured, semi-structured, and structured.

  • Calling any external service API in a structured fashion, and processing the response + storing it for later.

In that sense, agents are a step beyond our query engines in that they can not only “read” from a static source of data, but can dynamically ingest and modify data from a variety of different tools.

Building a data agent requires the following core components:

  • A reasoning loop

  • Tool abstractions

A data agent is initialized with set of APIs, or Tools, to interact with; these APIs can be called by the agent to return information or modify state. Given an input task, the data agent uses a reasoning loop to decide which tools to use, in which sequence, and the parameters to call each tool.

Setting up agent development environment

Tools

Having proper tool abstractions is at the core of building data agents. Defining a set of Tools is similar to defining any API interface, with the exception that these Tools are meant for agent rather than human use. We allow users to define both a Tool as well as a ToolSpec containing a series of functions under the hood.

A Tool implements a very generic interface - simply define __call__ and also return some basic metadata (name, description, function schema).

A Tool Spec defines a full API specification of any service that can be converted into a list of Tools.

LlamaIndex offer a few different types of Tools:

  • FunctionTool: A function tool allows users to easily convert any user-defined function into a Tool. It can also auto-infer the function schema.

  • QueryEngineTool: A tool that wraps an existing query engine. Note: since our agent abstractions inherit from BaseQueryEngine, these tools can also wrap other agents.

Operating System Agent
LlamaIndex ReAct internals - Under the hood
Agents In Production
LlamaIndex Function Calling Agent
Prompt Engineering Thoery

What is Language Modeling?

  • Language modeling is the task of predicting the next word in a sentence.

  • It is similar to autocomplete or word suggestions we see in our day-to-day life.

  • The language model predicts the probability of the next word based on the previous words in the sentence.


Formal Definition of Language Modeling

  • Language modeling involves computing the probability distribution of the next word in a sequence of words.

  • The probability of the next word (x t+1) is calculated based on the sequence of words before it (X1, X2, ..., XT) and needs to be a part of the vocabulary (V).


Large Language Models: A Brief Overview

  • A large language model (LLM) is a language model trained on a huge amount of data.

  • LLMs are capable of predicting the probability of the next word with high accuracy.

  • They have gained immense popularity in recent times due to their ability to perform a variety of language-related tasks.

How Large Language Models Work

  • LLMs work by taking an input of words and predicting the probability of the next word.

  • They make their predictions based on the input provided and the probabilities learned during the training phase.

  • LLMs can sometimes generate output that is far-fetched from reality and simply not true due to the limitations of probability-based predictions.

What is a Prompt in AI Language Models?

  • A prompt is the input given to an AI model to produce an output.

  • It guides the model to understand the context and generate a meaningful response.

Components of a Prompt:

Instruction

  • The heart of the prompt that tells the AI model what task it needs to perform.

  • It sets the stage for the model's response, whether it's text summary, translation, or classification.

Context

  • Additional information that helps the AI model understand the task and generate more accurate responses.

  • For some tasks, context may not be necessary, but for others, it can significantly improve the model's performance.

Input Data

  • The information that the AI model will process to complete the task set in the prompt.

  • It could be a piece of text, image, or anything relevant to the task.

Output Indicator

  • Signals the AI model that we expect a response.

  • Sometimes implicit in the instruction, but sometimes explicitly stated.


Here are the key points we'll cover:

  • Large language models and their immense knowledge base

  • What is zero shot prompting?

  • An example of a zero shot prompt

  • Why zero shot prompts are popular among AI beginners

  • The limitations of zero shot prompting

With zero shot prompting, AI models can generate outputs for tasks they haven't been explicitly trained on, using their pre-existing knowledge to perform the task based on the information provided in the prompt. However, this kind of prompt comes with its own set of limitations, such as accuracy and scope.

In this video, we will explore the concept of Few Shot Prompting, a technique used in prompt engineering that allows AI models to generate or classify new data by presenting them with a small number of examples or shots of a particular task or concept along with a prompt or instruction. Here are the main points we will cover:

What is Few Shot Prompting?

Few Shot Prompting is a prompt engineering technique that involves presenting the AI model with a small number of examples or shots of a task or concept to generate or classify new data that is similar to the examples provided. It is particularly useful in scenarios where there is limited data available for a given task or domain where data may be scarce.


How Does Few Shot Prompting Work?

Few Shot Prompting works by providing the AI model with a few examples of a particular task or concept and a prompt or instruction on how to generate or classify new data similar to the examples provided. It can quickly adapt models to new tasks and domains by fine-tuning existing models without requiring a large amount of new data.

Case Study: Zero Shot, One Shot, and Few Shot Prompting in Action

We will demonstrate the effectiveness of zero shot, one shot, and few shot prompting techniques in generating text-to-text descriptions for Blue Willow, an open source AI tool that generates images from text prompts. By comparing the outputs generated by each technique, we will see which one performed better according to our task of generating a good description to paint a picture.


Introduction to Chain of Thought

  • Explanation of Chain of Thought's purpose in improving LLM reasoning abilities

  • How Chain of Thought allows models to decompose complex problems into manageable steps

Standard Prompting Limitations

  • Examples of insufficient answers with standard zero-shot prompting

  • Explanation of zero-shot prompting

Chain of Thought Prompting

  • Explanation of Chain of Thought as a new prompting technique

  • Examples of Chain of Thought's success in solving complex reasoning problems

  • Comparison to human problem-solving methods

Zero-Shot and Few-Shot Chain of Thought Prompting

  • Explanation of zero-shot Chain of Thought prompting

  • Explanation of few-shot Chain of Thought prompting

  • Benefits and limitations of each method

In this video, we will explore the ReAct Prompting technique, a powerful approach to prompt engineering that combines reasoning and acting to accomplish complex tasks. Here are the main points we will cover:

What is ReAct Prompting?

  • ReAct Prompting is a technique that allows language models to reason and act upon a task to generate an output.

  • It is based on the chain of thoughts that the model can generate to accomplish a task.

How Does ReAct Prompting Work?

  • ReAct Prompting involves breaking down a task into multiple steps, reasoning the steps, acting upon them, and then completing the entire task.

  • The model can derive an action by accessing external sources or APIs, allowing it to accomplish more complex tasks.

Case Study: ReAct Prompting in Action

  • We will look at a research paper that demonstrates the power of ReAct Prompting in action.

  • The paper shows how a language model was able to derive the correct answer to a complex question by reasoning and acting upon it.


Prompt Engineering Quick Tips
Troubleshooting Section
Have a technical issue? WATCH THIS FIRST. I Promise this will help!
LlamaIndex Latest- Upgrading code to
LangChain
What is LanChain + LangChain Course Coupons
Wrapping Up
LLM Application Development landscape
Finished course? Whats next!
LangSmith, LangChain Hub, TextSplitting Playground
LangChain Hub - Downloads prompt from the community
TextSplitting Playground
LlamaIndex VS LangChain

Good to know

Know what's good
, what to watch for
, and possible dealbreakers
Taught by Eden Marco, who has significant recognition for their work in coding and AI programming with LlamaIndex
Provides students with dedicated 1 on 1 troubleshooting support with the instructor (Eden Marco)
Offers a community on Discord to connect with other learners
Does not require learners to have any professional experience in working with programming languages
Provides students with access to additional AI resources, troubleshooting guides, and frequently asked questions
Provides students with a lifetime access to the course content for continuous updates and improvements

Save this course

Save LlamaIndex- Develop LLM powered applications with LlamaIndex to your list so you can find it easily later:
Save

Activities

Coming soon We're preparing activities for LlamaIndex- Develop LLM powered applications with LlamaIndex. These are activities you can do either before, during, or after a course.

Career center

Learners who complete LlamaIndex- Develop LLM powered applications with LlamaIndex will develop knowledge and skills that may be useful to these careers:
Natural Language Processing Engineer
Natural Language Processing Engineers design, build, and deploy natural language processing models for a variety of applications. This course provides a comprehensive introduction to the core concepts and techniques used in natural language processing, including text classification, text summarization, and question answering. By completing this course, you will gain the foundational skills necessary to succeed in a career as a Natural Language Processing Engineer.
Machine Learning Engineer
Machine Learning Engineers design, build, and deploy machine learning models for a variety of applications. This course provides a comprehensive introduction to the core concepts and techniques used in machine learning, including supervised learning, unsupervised learning, and reinforcement learning. By completing this course, you will gain the foundational skills necessary to succeed in a career as a Machine Learning Engineer.
Data Scientist
Data Scientists use their knowledge of statistics, programming, and machine learning to extract insights from data. This course provides a comprehensive introduction to the core concepts and techniques used in data science, including data analysis, machine learning, and natural language processing. By completing this course, you will gain the foundational skills necessary to succeed in a career as a Data Scientist.
Data Analyst
Data Analysts collect, analyze, and interpret data to provide insights to businesses. This course provides a comprehensive introduction to the core concepts and techniques used in data analysis, including statistics, data visualization, and data mining. By completing this course, you will gain the foundational skills necessary to succeed in a career as a Data Analyst.
Data Science Engineer
Data Science Engineers are responsible for designing, developing, and deploying data-driven solutions for real-world problems. This course provides a comprehensive introduction to the core concepts and techniques used in data science, including data analysis, machine learning, and natural language processing. By completing this course, you will gain the foundational skills necessary to succeed in a career as a Data Science Engineer.
Business Analyst
Business Analysts help businesses understand their needs and develop solutions to improve their operations. This course provides a comprehensive introduction to the core concepts and techniques used in business analysis, including business process modeling, data analysis, and project management. By completing this course, you will gain the foundational skills necessary to succeed in a career as a Business Analyst.
Software Engineer
Software Engineers design, develop, and maintain software systems. This course provides a comprehensive introduction to the core concepts and techniques used in software engineering, including object-oriented programming, data structures, and algorithms. By completing this course, you will gain the foundational skills necessary to succeed in a career as a Software Engineer.
Product Manager
Product Managers are responsible for developing and managing products. This course provides a comprehensive introduction to the core concepts and techniques used in product management, including product design, market research, and user experience. By completing this course, you will gain the foundational skills necessary to succeed in a career as a Product Manager.
Web Developer
Web Developers design, develop, and maintain websites and web applications. This course provides a comprehensive introduction to the core concepts and techniques used in web development, including HTML, CSS, and JavaScript. By completing this course, you will gain the foundational skills necessary to succeed in a career as a Web Developer.
User Experience (UX) Designer
User Experience (UX) Designers design the user experience for websites, apps, and other products. This course provides a comprehensive introduction to the core concepts and techniques used in UX design, including user research, usability testing, and information architecture. By completing this course, you will gain the foundational skills necessary to succeed in a career as a User Experience (UX) Designer.
Interaction Designer
Interaction Designers design the interactions between users and products. This course provides a comprehensive introduction to the core concepts and techniques used in interaction design, including user research, prototyping, and user testing. By completing this course, you will gain the foundational skills necessary to succeed in a career as an Interaction Designer.
Information Architect
Information Architects design the structure and organization of websites, apps, and other products. This course provides a comprehensive introduction to the core concepts and techniques used in information architecture, including information modeling, user flows, and sitemaps. By completing this course, you will gain the foundational skills necessary to succeed in a career as an Information Architect.
Content Strategist
Content Strategists plan and manage the creation and delivery of content. This course provides a comprehensive introduction to the core concepts and techniques used in content strategy, including content planning, content creation, and content distribution. By completing this course, you will gain the foundational skills necessary to succeed in a career as a Content Strategist.
Technical Writer
Technical Writers create documentation for software and other technical products. This course provides a comprehensive introduction to the core concepts and techniques used in technical writing, including information design, style guides, and user experience. By completing this course, you will gain the foundational skills necessary to succeed in a career as a Technical Writer.
Project Manager
Project Managers are responsible for planning, organizing, and managing projects. This course provides a comprehensive introduction to the core concepts and techniques used in project management, including project planning, risk management, and stakeholder management. By completing this course, you will gain the foundational skills necessary to succeed in a career as a Project Manager.

Reading list

We've selected 12 books that we think will supplement your learning. Use these to develop background knowledge, enrich your coursework, and gain a deeper understanding of the topics covered in LlamaIndex- Develop LLM powered applications with LlamaIndex.
Provides a comprehensive overview of large language models, including their architectures, training methods, and applications. It valuable resource for anyone interested in learning more about this rapidly developing field.
Classic textbook on speech and language processing, covering a wide range of topics from fundamentals to advanced applications. It valuable resource for anyone interested in learning more about this field.
Comprehensive reference on deep learning, covering a wide range of topics from fundamentals to advanced applications. It valuable resource for anyone interested in learning more about this field.
Classic textbook on reinforcement learning, covering a wide range of topics from fundamentals to advanced applications. It valuable resource for anyone interested in learning more about this field.
Classic textbook on statistical learning, covering a wide range of topics from fundamentals to advanced applications. It valuable resource for anyone interested in learning more about this field.
Comprehensive reference on pattern recognition and machine learning, covering a wide range of topics from fundamentals to advanced applications. It valuable resource for anyone interested in learning more about this field.
Comprehensive reference on information theory, inference, and learning algorithms, covering a wide range of topics from fundamentals to advanced applications. It valuable resource for anyone interested in learning more about this field.
Comprehensive reference on machine learning from a probabilistic perspective, covering a wide range of topics from fundamentals to advanced applications. It valuable resource for anyone interested in learning more about this field.
Classic textbook on artificial intelligence, covering a wide range of topics from fundamentals to advanced applications. It valuable resource for anyone interested in learning more about this field.
Practical guide to deep learning with Python, covering a wide range of topics from fundamentals to advanced applications. It valuable resource for anyone interested in learning more about this field.
Practical guide to TensorFlow 2.0, covering a wide range of topics from fundamentals to advanced applications. It valuable resource for anyone interested in learning more about this field.
Practical guide to PyTorch, covering a wide range of topics from fundamentals to advanced applications. It valuable resource for anyone interested in learning more about this field.

Share

Help others find this course page by sharing it with your friends and followers:

Similar courses

Here are nine courses similar to LlamaIndex- Develop LLM powered applications with LlamaIndex.
Gen AI - RAG Application Development using LlamaIndex
Most relevant
LlamaIndex: Train ChatGPT (& other LLMs) on Custom Data
Most relevant
LangGraph- Develop LLM powered agents with LangGraph
Most relevant
LangChain- Develop LLM powered applications with LangChain
Most relevant
Building Agentic RAG with LlamaIndex
Most relevant
JavaScript RAG Web Apps with LlamaIndex
Open-source LLMs: Uncensored & secure AI locally with RAG
AI-Agents: Automation & Business with LangChain & LLM Apps
End to End LLMs with Azure
Our mission

OpenCourser helps millions of learners each year. People visit us to learn workspace skills, ace their exams, and nurture their curiosity.

Our extensive catalog contains over 50,000 courses and twice as many books. Browse by search, by topic, or even by career interests. We'll match you to the right resources quickly.

Find this site helpful? Tell a friend about us.

Affiliate disclosure

We're supported by our community of learners. When you purchase or subscribe to courses and programs or purchase books, we may earn a commission from our partners.

Your purchases help us maintain our catalog and keep our servers humming without ads.

Thank you for supporting OpenCourser.

© 2016 - 2024 OpenCourser