Building Systems with the ChatGPT API

Brought by: Coursera

Overview

In Building Systems With The ChatGPT API, you will learn how to automate complex workflows using chain calls to a large language model. Unlock new development capabilities and improve your efficiency in this brand new short course.

You’ll build:
1. Chains of prompts that interact with the completions of prior prompts.
2. Systems where Python code interacts with both completions and new prompts.
3. A customer service chatbot using all the techniques from this course.

You’ll learn how to apply these skills to practical scenarios, including classifying user queries to a chat agent’s response, evaluating user queries for safety, and processing tasks for chain-of-thought, multi-step reasoning.

This one-hour course, taught by Isa Fulford (OpenAI) and Andrew Ng (DeepLearning.AI), builds on the lessons taught in the popular ChatGPT Prompt Engineering for Developers, though it is not a prerequisite. Hands-on examples make each concept easy to understand. Built-in Jupyter notebooks allow you to seamlessly experiment with the code and prompts presented in the course.

Syllabus

  • Project Overview
    • In Building Systems With The ChatGPT API, you will learn how to automate complex workflows using chain calls to a large language model. Unlock new development capabilities and improve your efficiency in this brand new short course. You’ll build: 1. Chains of prompts that interact with the completions of prior prompts. 2. Systems where Python code interacts with both completions and new prompts. 3. A customer service chatbot using all the techniques from this course.You’ll learn how to apply these skills to practical scenarios, including classifying user queries to a chat agent’s response, evaluating user queries for safety, and processing tasks for chain-of-thought, multi-step reasoning. This one-hour course, taught by Isa Fulford (OpenAI) and Andrew Ng (DeepLearning.AI), builds on the lessons taught in the popular ChatGPT Prompt Engineering for Developers, though it is not a prerequisite. Hands-on examples make each concept easy to understand. Built-in Jupyter notebooks allow you to seamlessly experiment with the code and prompts presented in the course.

Taught by

Andrew Ng

Building Systems with the ChatGPT API
Go to course

Building Systems with the ChatGPT API

Brought by: Coursera

  • Coursera
  • Paid
  • English
  • Certificate Available
  • Available at any time
  • beginner
  • English
8.1.2PHP Version991msRequest Duration2MBMemory UsageGET en/courses/{slug}Route
    • Booting (636ms)
    • Application (352ms)
    • 1 x Booting (64.2%)
      636.11ms
      1 x Application (35.55%)
      352.18ms
      14 templates were rendered
      • public.courses.show (resources/views/public/courses/show.blade.php)3bladefile
        Params
        0
        course
        1
        links
        2
        config
      • public.courses.partials.breadcrumbs (resources/views/public/courses/partials/breadcrumbs.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.courses.partials.heading (resources/views/public/courses/partials/heading.blade.php)7bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
        6
        classes
      • public.courses.partials.details (resources/views/public/courses/partials/details.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.courses.partials.breadcrumbs (resources/views/public/courses/partials/breadcrumbs.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.courses.partials.heading (resources/views/public/courses/partials/heading.blade.php)7bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
        6
        classes
      • public.layouts.main (resources/views/public/layouts/main.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.layouts.partials.meta (resources/views/public/layouts/partials/meta.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.layouts.partials.navbar (resources/views/public/layouts/partials/navbar.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.auth.profile.partials.links (resources/views/public/auth/profile/partials/links.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.auth.profile.partials.link (resources/views/public/auth/profile/partials/link.blade.php)8bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
        6
        route
        7
        title
      • public.auth.profile.partials.link (resources/views/public/auth/profile/partials/link.blade.php)8bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
        6
        route
        7
        title
      • public.auth.profile.partials.link (resources/views/public/auth/profile/partials/link.blade.php)8bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
        6
        route
        7
        title
      • public.layouts.partials.flash-session (resources/views/public/layouts/partials/flash-session.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      uri
      GET en/courses/{slug}
      middleware
      web, localize:en
      controller
      App\Http\Controllers\CourseController@show
      as
      en.courses.show
      namespace
      prefix
      /en
      where
      file
      app/Http/Controllers/CourseController.php:17-35
      7 statements were executed9.51ms
      • select * from `courses` where `slug_en` = 'building-systems-with-the-chatgpt-api' limit 1
        6.7ms/app/Http/Controllers/CourseController.php:20corspedia
        Metadata
        Bindings
        • 0. building-systems-with-the-chatgpt-api
        Backtrace
        • 17. /app/Http/Controllers/CourseController.php:20
        • 18. /vendor/laravel/framework/src/Illuminate/Routing/Controller.php:54
        • 19. /vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php:43
        • 20. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:260
        • 21. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:205
      • update `courses` set `visitors` = `visitors` + 1, `courses`.`updated_at` = '2025-06-10 03:36:13' where `id` = 589
        1.71ms/app/Http/Controllers/CourseController.php:21corspedia
        Metadata
        Bindings
        • 0. 2025-06-10 03:36:13
        • 1. 589
        Backtrace
        • 17. /app/Http/Controllers/CourseController.php:21
        • 18. /vendor/laravel/framework/src/Illuminate/Routing/Controller.php:54
        • 19. /vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php:43
        • 20. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:260
        • 21. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:205
      • select `id`, `name_en`, `name_ar`, `topic_id`, `slug_en`, `slug_ar` from `subjects` where `subjects`.`id` in (5)
        230μs/app/Http/Controllers/CourseController.php:23corspedia
        Metadata
        Backtrace
        • 20. /app/Http/Controllers/CourseController.php:23
        • 21. /vendor/laravel/framework/src/Illuminate/Routing/Controller.php:54
        • 22. /vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php:43
        • 23. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:260
        • 24. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:205
      • select `id`, `name_en`, `name_ar`, `slug_en`, `slug_ar` from `topics` where `topics`.`id` in (1)
        200μs/app/Http/Controllers/CourseController.php:23corspedia
        Metadata
        Backtrace
        • 25. /app/Http/Controllers/CourseController.php:23
        • 26. /vendor/laravel/framework/src/Illuminate/Routing/Controller.php:54
        • 27. /vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php:43
        • 28. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:260
        • 29. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:205
      • select * from `institutions` where `institutions`.`id` in (34) and `institutions`.`deleted_at` is null
        220μs/app/Http/Controllers/CourseController.php:23corspedia
        Metadata
        Backtrace
        • 20. /app/Http/Controllers/CourseController.php:23
        • 21. /vendor/laravel/framework/src/Illuminate/Routing/Controller.php:54
        • 22. /vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php:43
        • 23. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:260
        • 24. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:205
      • select * from `providers` where `providers`.`id` in (2) and `providers`.`deleted_at` is null
        210μs/app/Http/Controllers/CourseController.php:23corspedia
        Metadata
        Backtrace
        • 20. /app/Http/Controllers/CourseController.php:23
        • 21. /vendor/laravel/framework/src/Illuminate/Routing/Controller.php:54
        • 22. /vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php:43
        • 23. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:260
        • 24. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:205
      • select * from `html_files` where `html_files`.`id` = 583 limit 1
        240μs/app/Models/Course.php:84corspedia
        Metadata
        Bindings
        • 0. 583
        Backtrace
        • 21. /app/Models/Course.php:84
        • 28. view::public.courses.show:29
        • 30. /vendor/laravel/framework/src/Illuminate/Filesystem/Filesystem.php:125
        • 31. /vendor/laravel/framework/src/Illuminate/View/Engines/PhpEngine.php:58
        • 32. /vendor/laravel/framework/src/Illuminate/View/Engines/CompilerEngine.php:72
      App\Models\HtmlFile
      1
      App\Models\Provider
      1
      App\Models\Institution
      1
      App\Models\Topic
      1
      App\Models\Subject
      1
      App\Models\Course
      1
        _token
        lKgguBS7WkG7PGyosnNpWG1PUYQZ4pCsTFYkv4KH
        locale
        en
        _previous
        array:1 [ "url" => "https://www.corspedia.com/en/courses/building-systems-with-the-chatgpt-api" ]
        _flash
        array:2 [ "old" => [] "new" => [] ]
        PHPDEBUGBAR_STACK_DATA
        []
        path_info
        /en/courses/building-systems-with-the-chatgpt-api
        status_code
        200
        
        status_text
        OK
        format
        html
        content_type
        text/html; charset=UTF-8
        request_query
        []
        
        request_request
        []
        
        request_headers
        0 of 0
        array:24 [ "cf-ipcountry" => array:1 [ 0 => "US" ] "cf-connecting-ip" => array:1 [ 0 => "216.73.216.125" ] "cdn-loop" => array:1 [ 0 => "cloudflare; loops=1" ] "x-forwarded-proto" => array:1 [ 0 => "https" ] "x-forwarded-for" => array:1 [ 0 => "216.73.216.125" ] "sec-fetch-site" => array:1 [ 0 => "none" ] "accept" => array:1 [ 0 => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7" ] "user-agent" => array:1 [ 0 => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)" ] "upgrade-insecure-requests" => array:1 [ 0 => "1" ] "sec-ch-ua-platform" => array:1 [ 0 => ""Windows"" ] "sec-ch-ua-mobile" => array:1 [ 0 => "?0" ] "sec-ch-ua" => array:1 [ 0 => ""Chromium";v="130", "HeadlessChrome";v="130", "Not?A_Brand";v="99"" ] "cache-control" => array:1 [ 0 => "no-cache" ] "pragma" => array:1 [ 0 => "no-cache" ] "sec-fetch-dest" => array:1 [ 0 => "document" ] "cf-ray" => array:1 [ 0 => "94d5d2b3ea97e7f4-ORD" ] "accept-encoding" => array:1 [ 0 => "gzip, br" ] "priority" => array:1 [ 0 => "u=0, i" ] "sec-fetch-user" => array:1 [ 0 => "?1" ] "sec-fetch-mode" => array:1 [ 0 => "navigate" ] "cf-visitor" => array:1 [ 0 => "{"scheme":"https"}" ] "host" => array:1 [ 0 => "www.corspedia.com" ] "content-length" => array:1 [ 0 => "" ] "content-type" => array:1 [ 0 => "" ] ]
        request_server
        0 of 0
        array:50 [ "USER" => "www-data" "HOME" => "/var/www" "HTTP_CF_IPCOUNTRY" => "US" "HTTP_CF_CONNECTING_IP" => "216.73.216.125" "HTTP_CDN_LOOP" => "cloudflare; loops=1" "HTTP_X_FORWARDED_PROTO" => "https" "HTTP_X_FORWARDED_FOR" => "216.73.216.125" "HTTP_SEC_FETCH_SITE" => "none" "HTTP_ACCEPT" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7" "HTTP_USER_AGENT" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)" "HTTP_UPGRADE_INSECURE_REQUESTS" => "1" "HTTP_SEC_CH_UA_PLATFORM" => ""Windows"" "HTTP_SEC_CH_UA_MOBILE" => "?0" "HTTP_SEC_CH_UA" => ""Chromium";v="130", "HeadlessChrome";v="130", "Not?A_Brand";v="99"" "HTTP_CACHE_CONTROL" => "no-cache" "HTTP_PRAGMA" => "no-cache" "HTTP_SEC_FETCH_DEST" => "document" "HTTP_CF_RAY" => "94d5d2b3ea97e7f4-ORD" "HTTP_ACCEPT_ENCODING" => "gzip, br" "HTTP_PRIORITY" => "u=0, i" "HTTP_SEC_FETCH_USER" => "?1" "HTTP_SEC_FETCH_MODE" => "navigate" "HTTP_CF_VISITOR" => "{"scheme":"https"}" "HTTP_HOST" => "www.corspedia.com" "REDIRECT_STATUS" => "200" "SERVER_NAME" => "corspedia.com" "SERVER_PORT" => "443" "SERVER_ADDR" => "141.95.147.152" "REMOTE_USER" => "" "REMOTE_PORT" => "36462" "REMOTE_ADDR" => "172.70.100.153" "SERVER_SOFTWARE" => "nginx/1.18.0" "GATEWAY_INTERFACE" => "CGI/1.1" "HTTPS" => "on" "REQUEST_SCHEME" => "https" "SERVER_PROTOCOL" => "HTTP/2.0" "DOCUMENT_ROOT" => "/var/www/corspedia/public" "DOCUMENT_URI" => "/index.php" "REQUEST_URI" => "/en/courses/building-systems-with-the-chatgpt-api" "SCRIPT_NAME" => "/index.php" "CONTENT_LENGTH" => "" "CONTENT_TYPE" => "" "REQUEST_METHOD" => "GET" "QUERY_STRING" => "" "SCRIPT_FILENAME" => "/var/www/corspedia/public/index.php" "PATH_INFO" => "" "FCGI_ROLE" => "RESPONDER" "PHP_SELF" => "/index.php" "REQUEST_TIME_FLOAT" => 1749526572.4181 "REQUEST_TIME" => 1749526572 ]
        request_cookies
        []
        
        response_headers
        0 of 0
        array:5 [ "content-type" => array:1 [ 0 => "text/html; charset=UTF-8" ] "cache-control" => array:1 [ 0 => "no-cache, private" ] "date" => array:1 [ 0 => "Tue, 10 Jun 2025 03:36:13 GMT" ] "set-cookie" => array:2 [ 0 => "XSRF-TOKEN=eyJpdiI6ImUxUHBqZzE4bEI2MEorVmgrWU9wSUE9PSIsInZhbHVlIjoiNHNCdGZNTEJLa3kwOUhjNmJKUUlJS1hqSkpBUEZvTTkzZlZKTmxDOXBLZGpuUTVhSnN1V3FVOGJjY2JnTU5WdFB4OU5FbEE2aVFoZTNaRjlwdE04Sjc0THNPb1lOOFpFdUZXTWUzRXFzWTRabnhOaThGbmhnSEhETUFXWmN5ZlAiLCJtYWMiOiJkOTdjMDhhZGM5MzI1Y2MzZjg0Mzk4NTRiMTI2ODk3NzRkNjkwNzQ2M2QwNTU2ODhlMGY3ZGRiMzg0MzZkYWU3IiwidGFnIjoiIn0%3D; expires=Tue, 10 Jun 2025 05:36:13 GMT; Max-Age=7200; path=/; samesite=laxXSRF-TOKEN=eyJpdiI6ImUxUHBqZzE4bEI2MEorVmgrWU9wSUE9PSIsInZhbHVlIjoiNHNCdGZNTEJLa3kwOUhjNmJKUUlJS1hqSkpBUEZvTTkzZlZKTmxDOXBLZGpuUTVhSnN1V3FVOGJjY2JnTU5WdFB4OU5Fb" 1 => "laravel_session=eyJpdiI6InRjNEc1bHdRNXRSMko3RDdXaE9KMGc9PSIsInZhbHVlIjoiaUdmVy9sN0VWOEtrM0VWVzZlUWI4VllKWGIyRUsxbzUvQ1QrTk5XMElVUC9VOVdFZHZ2RmRFc3dIS2loMGw1NStiQUd5VWV4YTFmVWdITzNSZXFYNnpxcXB1c0VCWS96ZHNIUDZKaTZFQ2x5MEhqVFAxWlJIcytKeWRoQUFpUysiLCJtYWMiOiIzMmYzZmQxMTQ4YTY5ODhkZThjNWM2NGY2N2UwYzllNWYxMTZlMTQwMjZlMTgxYzM1NDZlNzg1ZTQ2NDU0N2UyIiwidGFnIjoiIn0%3D; expires=Tue, 10 Jun 2025 05:36:13 GMT; Max-Age=7200; path=/; httponly; samesite=laxlaravel_session=eyJpdiI6InRjNEc1bHdRNXRSMko3RDdXaE9KMGc9PSIsInZhbHVlIjoiaUdmVy9sN0VWOEtrM0VWVzZlUWI4VllKWGIyRUsxbzUvQ1QrTk5XMElVUC9VOVdFZHZ2RmRFc3dIS2loMGw1NSti" ] "Set-Cookie" => array:2 [ 0 => "XSRF-TOKEN=eyJpdiI6ImUxUHBqZzE4bEI2MEorVmgrWU9wSUE9PSIsInZhbHVlIjoiNHNCdGZNTEJLa3kwOUhjNmJKUUlJS1hqSkpBUEZvTTkzZlZKTmxDOXBLZGpuUTVhSnN1V3FVOGJjY2JnTU5WdFB4OU5FbEE2aVFoZTNaRjlwdE04Sjc0THNPb1lOOFpFdUZXTWUzRXFzWTRabnhOaThGbmhnSEhETUFXWmN5ZlAiLCJtYWMiOiJkOTdjMDhhZGM5MzI1Y2MzZjg0Mzk4NTRiMTI2ODk3NzRkNjkwNzQ2M2QwNTU2ODhlMGY3ZGRiMzg0MzZkYWU3IiwidGFnIjoiIn0%3D; expires=Tue, 10-Jun-2025 05:36:13 GMT; path=/XSRF-TOKEN=eyJpdiI6ImUxUHBqZzE4bEI2MEorVmgrWU9wSUE9PSIsInZhbHVlIjoiNHNCdGZNTEJLa3kwOUhjNmJKUUlJS1hqSkpBUEZvTTkzZlZKTmxDOXBLZGpuUTVhSnN1V3FVOGJjY2JnTU5WdFB4OU5Fb" 1 => "laravel_session=eyJpdiI6InRjNEc1bHdRNXRSMko3RDdXaE9KMGc9PSIsInZhbHVlIjoiaUdmVy9sN0VWOEtrM0VWVzZlUWI4VllKWGIyRUsxbzUvQ1QrTk5XMElVUC9VOVdFZHZ2RmRFc3dIS2loMGw1NStiQUd5VWV4YTFmVWdITzNSZXFYNnpxcXB1c0VCWS96ZHNIUDZKaTZFQ2x5MEhqVFAxWlJIcytKeWRoQUFpUysiLCJtYWMiOiIzMmYzZmQxMTQ4YTY5ODhkZThjNWM2NGY2N2UwYzllNWYxMTZlMTQwMjZlMTgxYzM1NDZlNzg1ZTQ2NDU0N2UyIiwidGFnIjoiIn0%3D; expires=Tue, 10-Jun-2025 05:36:13 GMT; path=/; httponlylaravel_session=eyJpdiI6InRjNEc1bHdRNXRSMko3RDdXaE9KMGc9PSIsInZhbHVlIjoiaUdmVy9sN0VWOEtrM0VWVzZlUWI4VllKWGIyRUsxbzUvQ1QrTk5XMElVUC9VOVdFZHZ2RmRFc3dIS2loMGw1NSti" ] ]
        session_attributes
        0 of 0
        array:5 [ "_token" => "lKgguBS7WkG7PGyosnNpWG1PUYQZ4pCsTFYkv4KH" "locale" => "en" "_previous" => array:1 [ "url" => "https://www.corspedia.com/en/courses/building-systems-with-the-chatgpt-api" ] "_flash" => array:2 [ "old" => [] "new" => [] ] "PHPDEBUGBAR_STACK_DATA" => [] ]