Tutorial: Building Your First Question Answering App

This tutorial guides you through the process of building an English question answering pipeline in the fastest and easiest possible way. It uses the UI to upload the sample dataset and it teaches you how to create a pipeline from the template.

  • Level: Beginner
  • Time to complete: 10 minutes
  • Prerequisites:
    • This tutorial assumes a basic knowledge of language models.
    • You must be an Admin to complete this tutorial.
    • Ensure you have a deepset Cloud workspace ready for your question answering pipeline.
  • Goal: After completing this tutorial, you will have built a complete English question answering app that can answer various questions about jazz.

Upload Files

You need the files the search will run on. You can use the sample files we prepared or your own dataset. To use the sample files:

  1. Download the .zip file from gdrive and unpack it on your computer.
  2. Log in to deepset Cloud, switch to the workspace you want to use, and go to Files.
Navigation bar in deepset Cloud with the workspace switch marked as number one and the Files option marked as number two.
  1. Click Upload Files.
  2. Drop the files you unpacked in step 1 into the Upload Files window and click Upload.
  3. Wait until the upload finishes. You should have 344 files. You can check that in the Dashboard.

Result: Your files are in your workspace, and you can see them on the Files page.

A screenshot of the Files page with a list of uploaded files displayed.

Create a Pipeline

In this step, you define how your search is going to run. Let's use a question answering pipeline template to create the pipeline.

  1. Go to Pipeline Templates.

  2. Under All Templates, click Basic QA, find Extractive Question Answering, and click Use Template.

    Screenshot of a webpage with a selection of pipeline templates for question-answering (QA) systems. The page is divided into sections with categories such as 'Recommended', 'Document Search', 'Basic QA', among others. The 'Basic QA' section is highlighted with a red notification bubble indicating '1'. There are two templates visible in detail: 'Extractive Question Answering' and 'Extractive Question Answering (German)', both described as search mechanisms for answers based on semantic similarity to the questions. Two options, 'View Details' and 'Use Template', are available for each template. The interface has a clean, professional look with a color scheme of blues, whites, and reds for notifications
  3. Type Jazz_English_QA as the pipeline name and click Create Pipeline. You're redirected to Pipeline Builder, where you can view and edit your indexing and query pipelines.

  4. Click Deploy. This triggers indexing and prepares your pipeline for a search. The pipeline status is now Deploying.

    The pipeline details page showing the Jazz English QA pipeline with the status deploying.
  5. Wait until the pipeline status changes to Indexed.
    Tip: When you hover your mouse over the status, you can see the number of files already indexed.

    The pipeline details page with the Jazz English QA pipeline indexing. The mouse cursor is over the Indexing status and a pop-up window is showing the indexing status of the files with 344 files pending, 0 indexed, and 0 failed.

Result: You created and deployed a pipeline. Your pipeline status is Indexed, and it's ready for use. Your pipeline is at the development service level. We recommend you test it before setting it to the production service level.

Test Your Pipeline

Now, it's time to try out your pipeline.

  1. Go to Playground.
  2. Select Jazz_English_QA as the pipeline you want to use.
  3. Now, search for an answer to this question: "How many people attended Duke Ellington's funeral?"
    You should get several answers.

Result: There! You've built a live question answering system from beginning to end. You can now ask your app questions related to jazz, and it will answer them.

What's Next

Your pipeline is now a development pipeline. Once it's ready for production, change its service level to Production. You can do this on the Pipeline Details page shown after clicking a pipeline name. To learn more, see Pipeline Service Levels.