2023-03-16 00:02:10 +03:00
<!doctype html>
< html lang = "en" class = "no-js" >
< head >
< meta charset = "utf-8" >
< meta name = "viewport" content = "width=device-width,initial-scale=1" >
< meta name = "description" content = "The project uses your ChatGPT token to access the ChatGPT API and let you chat with ChatGPT directly in Telegram." >
< link rel = "canonical" href = "https://docs.struchkov.dev/chatgpt-telegram-bot/en/develop/" >
< link rel = "icon" href = "assets/favicon.ico" >
< meta name = "generator" content = "mkdocs-1.4.2, mkdocs-material-9.0.13" >
< title > Personal ChatGPT Telegram Bot - ChatGPT Telegram Bot< / title >
< link rel = "stylesheet" href = "assets/stylesheets/main.ffa9267a.min.css" >
< link rel = "stylesheet" href = "assets/stylesheets/palette.a0c5b2b5.min.css" >
< link rel = "preconnect" href = "https://fonts.gstatic.com" crossorigin >
< link rel = "stylesheet" href = "https://fonts.googleapis.com/css?family=Roboto:300,300i,400,400i,700,700i%7CRoboto+Mono:400,400i,700,700i&display=fallback" >
< style > : root { --md-text-font : "Roboto" ; --md-code-font : "Roboto Mono" } < / style >
< link rel = "stylesheet" href = "stylesheets/extra.css" >
< script > _ _md _scope = new URL ( "." , location ) , _ _md _hash = e => [ ... e ] . reduce ( ( e , _ ) => ( e << 5 ) - e + _ . charCodeAt ( 0 ) , 0 ) , _ _md _get = ( e , _ = localStorage , t = _ _md _scope ) => JSON . parse ( _ . getItem ( t . pathname + "." + e ) ) , _ _md _set = ( e , _ , t = localStorage , a = _ _md _scope ) => { try { t . setItem ( a . pathname + "." + e , JSON . stringify ( _ ) ) } catch ( e ) { } } < / script >
<!-- Yandex.Metrika counter -->
< script type = "text/javascript" >
(function(m,e,t,r,i,k,a){m[i]=m[i]||function(){(m[i].a=m[i].a||[]).push(arguments)};
m[i].l=1*new Date();
for (var j = 0; j < document.scripts.length ; j + + ) { if ( document . scripts [ j ] . src = == r ) { return ; } }
k=e.createElement(t),a=e.getElementsByTagName(t)[0],k.async=1,k.src=r,a.parentNode.insertBefore(k,a)})
(window, document, "script", "https://mc.yandex.ru/metrika/tag.js", "ym");
ym(92825096, "init", {
clickmap:true,
trackLinks:true,
accurateTrackBounce:true
});
< / script >
< noscript > < div > < img src = "https://mc.yandex.ru/watch/92825096" style = "position:absolute; left:-9999px;" alt = "" / > < / div > < / noscript >
<!-- /Yandex.Metrika counter -->
< script > "undefined" != typeof _ _md _analytics && _ _md _analytics ( ) < / script >
< meta property = "og:type" content = "website" >
< meta property = "og:title" content = "Personal ChatGPT Telegram Bot - ChatGPT Telegram Bot" >
< meta property = "og:description" content = "The project uses your ChatGPT token to access the ChatGPT API and let you chat with ChatGPT directly in Telegram." >
< meta property = "og:image" content = "https://docs.struchkov.dev/chatgpt-telegram-bot/en/develop/assets/images/social/index.png" >
< meta property = "og:image:type" content = "image/png" >
< meta property = "og:image:width" content = "1200" >
< meta property = "og:image:height" content = "630" >
< meta property = "og:url" content = "https://docs.struchkov.dev/chatgpt-telegram-bot/en/develop/" >
< meta name = "twitter:card" content = "summary_large_image" >
< meta name = "twitter:title" content = "Personal ChatGPT Telegram Bot - ChatGPT Telegram Bot" >
< meta name = "twitter:description" content = "The project uses your ChatGPT token to access the ChatGPT API and let you chat with ChatGPT directly in Telegram." >
< meta name = "twitter:image" content = "https://docs.struchkov.dev/chatgpt-telegram-bot/en/develop/assets/images/social/index.png" >
< / head >
< body dir = "ltr" data-md-color-scheme = "default" data-md-color-primary = "teal" data-md-color-accent = "green" >
< script > var palette = _ _md _get ( "__palette" ) ; if ( palette && "object" == typeof palette . color ) for ( var key of Object . keys ( palette . color ) ) document . body . setAttribute ( "data-md-color-" + key , palette . color [ key ] ) < / script >
< input class = "md-toggle" data-md-toggle = "drawer" type = "checkbox" id = "__drawer" autocomplete = "off" >
< input class = "md-toggle" data-md-toggle = "search" type = "checkbox" id = "__search" autocomplete = "off" >
< label class = "md-overlay" for = "__drawer" > < / label >
< div data-md-component = "skip" >
< a href = "#personal-chatgpt-telegram-bot" class = "md-skip" >
Skip to content
< / a >
< / div >
< div data-md-component = "announce" >
< / div >
< div data-md-color-scheme = "default" data-md-component = "outdated" hidden >
< / div >
< header class = "md-header md-header--lifted" data-md-component = "header" >
< nav class = "md-header__inner md-grid" aria-label = "Header" >
< a href = "." title = "ChatGPT Telegram Bot" class = "md-header__button md-logo" aria-label = "ChatGPT Telegram Bot" data-md-component = "logo" >
< svg xmlns = "http://www.w3.org/2000/svg" viewBox = "0 0 24 24" > < path d = "M22.282 9.821a5.985 5.985 0 0 0-.516-4.91 6.046 6.046 0 0 0-6.51-2.9A6.065 6.065 0 0 0 4.981 4.18a5.985 5.985 0 0 0-3.998 2.9 6.046 6.046 0 0 0 .743 7.097 5.98 5.98 0 0 0 .51 4.911 6.051 6.051 0 0 0 6.515 2.9A5.985 5.985 0 0 0 13.26 24a6.056 6.056 0 0 0 5.772-4.206 5.99 5.99 0 0 0 3.997-2.9 6.056 6.056 0 0 0-.747-7.073zM13.26 22.43a4.476 4.476 0 0 1-2.876-1.04l.141-.081 4.779-2.758a.795.795 0 0 0 .392-.681v-6.737l2.02 1.168a.071.071 0 0 1 .038.052v5.583a4.504 4.504 0 0 1-4.494 4.494zM3.6 18.304a4.47 4.47 0 0 1-.535-3.014l.142.085 4.783 2.759a.771.771 0 0 0 .78 0l5.843-3.369v2.332a.08.08 0 0 1-.033.062L9.74 19.95a4.5 4.5 0 0 1-6.14-1.646zM2.34 7.896a4.485 4.485 0 0 1 2.366-1.973V11.6a.766.766 0 0 0 .388.676l5.815 3.355-2.02 1.168a.076.076 0 0 1-.071 0l-4.83-2.786A4.504 4.504 0 0 1 2.34 7.872zm16.597 3.855-5.833-3.387L15.119 7.2a.076.076 0 0 1 .071 0l4.83 2.791a4.494 4.494 0 0 1-.676 8.105v-5.678a.79.79 0 0 0-.407-.667zm2.01-3.023-.141-.085-4.774-2.782a.776.776 0 0 0-.785 0L9.409 9.23V6.897a.066.066 0 0 1 .028-.061l4.83-2.787a4.5 4.5 0 0 1 6.68 4.66zm-12.64 4.135-2.02-1.164a.08.08 0 0 1-.038-.057V6.075a4.5 4.5 0 0 1 7.375-3.453l-.142.08-4.778 2.758a.795.795 0 0 0-.393.681zm1.097-2.365 2.602-1.5 2.607 1.5v2.999l-2.597 1.5-2.607-1.5Z" / > < / svg >
< / a >
< label class = "md-header__button md-icon" for = "__drawer" >
< svg xmlns = "http://www.w3.org/2000/svg" viewBox = "0 0 24 24" > < path d = "M3 6h18v2H3V6m0 5h18v2H3v-2m0 5h18v2H3v-2Z" / > < / svg >
< / label >
< div class = "md-header__title" data-md-component = "header-title" >
< div class = "md-header__ellipsis" >
< div class = "md-header__topic" >
< span class = "md-ellipsis" >
ChatGPT Telegram Bot
< / span >
< / div >
< div class = "md-header__topic" data-md-component = "header-topic" >
< span class = "md-ellipsis" >
Personal ChatGPT Telegram Bot
< / span >
< / div >
< / div >
< / div >
< form class = "md-header__option" data-md-component = "palette" >
< input class = "md-option" data-md-color-media = "(prefers-color-scheme)" data-md-color-scheme = "default" data-md-color-primary = "teal" data-md-color-accent = "green" aria-label = "Switch to light mode" type = "radio" name = "__palette" id = "__palette_1" >
< label class = "md-header__button md-icon" title = "Switch to light mode" for = "__palette_3" hidden >
< svg xmlns = "http://www.w3.org/2000/svg" viewBox = "0 0 24 24" > < path d = "m14.3 16-.7-2h-3.2l-.7 2H7.8L11 7h2l3.2 9h-1.9M20 8.69V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12 20 8.69m-9.15 3.96h2.3L12 9l-1.15 3.65Z" / > < / svg >
< / label >
< input class = "md-option" data-md-color-media = "(prefers-color-scheme: light)" data-md-color-scheme = "default" data-md-color-primary = "teal" data-md-color-accent = "indigo" aria-label = "Switch to dark mode" type = "radio" name = "__palette" id = "__palette_2" >
< label class = "md-header__button md-icon" title = "Switch to dark mode" for = "__palette_1" hidden >
< svg xmlns = "http://www.w3.org/2000/svg" viewBox = "0 0 24 24" > < path d = "M12 8a4 4 0 0 0-4 4 4 4 0 0 0 4 4 4 4 0 0 0 4-4 4 4 0 0 0-4-4m0 10a6 6 0 0 1-6-6 6 6 0 0 1 6-6 6 6 0 0 1 6 6 6 6 0 0 1-6 6m8-9.31V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12 20 8.69Z" / > < / svg >
< / label >
< input class = "md-option" data-md-color-media = "(prefers-color-scheme: dark)" data-md-color-scheme = "slate" data-md-color-primary = "teal" data-md-color-accent = "" aria-label = "Switch to system preference" type = "radio" name = "__palette" id = "__palette_3" >
< label class = "md-header__button md-icon" title = "Switch to system preference" for = "__palette_2" hidden >
< svg xmlns = "http://www.w3.org/2000/svg" viewBox = "0 0 24 24" > < path d = "M12 18c-.89 0-1.74-.2-2.5-.55C11.56 16.5 13 14.42 13 12c0-2.42-1.44-4.5-3.5-5.45C10.26 6.2 11.11 6 12 6a6 6 0 0 1 6 6 6 6 0 0 1-6 6m8-9.31V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12 20 8.69Z" / > < / svg >
< / label >
< / form >
< div class = "md-header__source" >
< a href = "https://github.com/uPagge/openai-chatgpt-telegram-bot" title = "Go to repository" class = "md-source" data-md-component = "source" >
< div class = "md-source__icon md-icon" >
< svg xmlns = "http://www.w3.org/2000/svg" viewBox = "0 0 496 512" > <!-- ! Font Awesome Free 6.3.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2023 Fonticons, Inc. --> < path d = "M165.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6zm-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3zm44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9zM244.8 8C106.1 8 0 113.3 0 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C428.2 457.8 496 362.9 496 252 496 113.3 383.5 8 244.8 8zM97.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1zm-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7zm32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1zm-11.4-14.7c-1.6 1-1.6 3.6 0 5.9 1.6 2.3 4.3 3.3 5.6 2.3 1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2z" / > < / svg >
< / div >
< div class = "md-source__repository" >
uPagge/openai-chatgpt-telegram-bot
< / div >
< / a >
< / div >
< / nav >
< / header >
< div class = "md-container" data-md-component = "container" >
< main class = "md-main" data-md-component = "main" >
< div class = "md-main__inner md-grid" >
< div class = "md-sidebar md-sidebar--primary" data-md-component = "sidebar" data-md-type = "navigation" hidden >
< div class = "md-sidebar__scrollwrap" >
< div class = "md-sidebar__inner" >
< nav class = "md-nav md-nav--primary" aria-label = "Navigation" data-md-level = "0" >
< label class = "md-nav__title" for = "__drawer" >
< a href = "." title = "ChatGPT Telegram Bot" class = "md-nav__button md-logo" aria-label = "ChatGPT Telegram Bot" data-md-component = "logo" >
< svg xmlns = "http://www.w3.org/2000/svg" viewBox = "0 0 24 24" > < path d = "M22.282 9.821a5.985 5.985 0 0 0-.516-4.91 6.046 6.046 0 0 0-6.51-2.9A6.065 6.065 0 0 0 4.981 4.18a5.985 5.985 0 0 0-3.998 2.9 6.046 6.046 0 0 0 .743 7.097 5.98 5.98 0 0 0 .51 4.911 6.051 6.051 0 0 0 6.515 2.9A5.985 5.985 0 0 0 13.26 24a6.056 6.056 0 0 0 5.772-4.206 5.99 5.99 0 0 0 3.997-2.9 6.056 6.056 0 0 0-.747-7.073zM13.26 22.43a4.476 4.476 0 0 1-2.876-1.04l.141-.081 4.779-2.758a.795.795 0 0 0 .392-.681v-6.737l2.02 1.168a.071.071 0 0 1 .038.052v5.583a4.504 4.504 0 0 1-4.494 4.494zM3.6 18.304a4.47 4.47 0 0 1-.535-3.014l.142.085 4.783 2.759a.771.771 0 0 0 .78 0l5.843-3.369v2.332a.08.08 0 0 1-.033.062L9.74 19.95a4.5 4.5 0 0 1-6.14-1.646zM2.34 7.896a4.485 4.485 0 0 1 2.366-1.973V11.6a.766.766 0 0 0 .388.676l5.815 3.355-2.02 1.168a.076.076 0 0 1-.071 0l-4.83-2.786A4.504 4.504 0 0 1 2.34 7.872zm16.597 3.855-5.833-3.387L15.119 7.2a.076.076 0 0 1 .071 0l4.83 2.791a4.494 4.494 0 0 1-.676 8.105v-5.678a.79.79 0 0 0-.407-.667zm2.01-3.023-.141-.085-4.774-2.782a.776.776 0 0 0-.785 0L9.409 9.23V6.897a.066.066 0 0 1 .028-.061l4.83-2.787a4.5 4.5 0 0 1 6.68 4.66zm-12.64 4.135-2.02-1.164a.08.08 0 0 1-.038-.057V6.075a4.5 4.5 0 0 1 7.375-3.453l-.142.08-4.778 2.758a.795.795 0 0 0-.393.681zm1.097-2.365 2.602-1.5 2.607 1.5v2.999l-2.597 1.5-2.607-1.5Z" / > < / svg >
< / a >
ChatGPT Telegram Bot
< / label >
< div class = "md-nav__source" >
< a href = "https://github.com/uPagge/openai-chatgpt-telegram-bot" title = "Go to repository" class = "md-source" data-md-component = "source" >
< div class = "md-source__icon md-icon" >
< svg xmlns = "http://www.w3.org/2000/svg" viewBox = "0 0 496 512" > <!-- ! Font Awesome Free 6.3.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2023 Fonticons, Inc. --> < path d = "M165.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6zm-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3zm44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9zM244.8 8C106.1 8 0 113.3 0 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C428.2 457.8 496 362.9 496 252 496 113.3 383.5 8 244.8 8zM97.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1zm-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7zm32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1zm-11.4-14.7c-1.6 1-1.6 3.6 0 5.9 1.6 2.3 4.3 3.3 5.6 2.3 1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2z" / > < / svg >
< / div >
< div class = "md-source__repository" >
uPagge/openai-chatgpt-telegram-bot
< / div >
< / a >
< / div >
< ul class = "md-nav__list" data-md-scrollfix >
< li class = "md-nav__item md-nav__item--active md-nav__item--section md-nav__item--nested" >
< input class = "md-nav__toggle md-toggle " type = "checkbox" id = "__nav_1" checked >
< div class = "md-nav__link md-nav__link--index md-nav__link--active" >
< a href = "." > Home< / a >
< / div >
< nav class = "md-nav" data-md-level = "1" aria-labelledby = "__nav_1_label" aria-expanded = "true" >
< label class = "md-nav__title" for = "__nav_1" >
< span class = "md-nav__icon md-icon" > < / span >
Home
< / label >
< ul class = "md-nav__list" data-md-scrollfix >
< / ul >
< / nav >
< / li >
< / ul >
< / nav >
< / div >
< / div >
< / div >
< div class = "md-sidebar md-sidebar--secondary" data-md-component = "sidebar" data-md-type = "toc" >
< div class = "md-sidebar__scrollwrap" >
< div class = "md-sidebar__inner" >
< nav class = "md-nav md-nav--secondary" aria-label = "Table of content" >
< label class = "md-nav__title" for = "__toc" >
< span class = "md-nav__icon md-icon" > < / span >
Table of content
< / label >
< ul class = "md-nav__list" data-md-component = "toc" data-md-scrollfix >
< li class = "md-nav__item" >
< a href = "#features" class = "md-nav__link" >
Features
< / a >
< nav class = "md-nav" aria-label = "Features" >
< ul class = "md-nav__list" >
< li class = "md-nav__item" >
< a href = "#commands" class = "md-nav__link" >
Commands
< / a >
< / li >
< / ul >
< / nav >
< / li >
< li class = "md-nav__item" >
< a href = "#privacy" class = "md-nav__link" >
Privacy
< / a >
< / li >
< li class = "md-nav__item" >
< a href = "#lets-get-started" class = "md-nav__link" >
Let's get started
< / a >
< nav class = "md-nav" aria-label = "Let's get started" >
< ul class = "md-nav__list" >
< li class = "md-nav__item" >
< a href = "#preparing" class = "md-nav__link" >
Preparing
< / a >
< / li >
< li class = "md-nav__item" >
< a href = "#docker-run" class = "md-nav__link" >
Docker Run
< / a >
< / li >
< li class = "md-nav__item" >
< a href = "#dockercompose" class = "md-nav__link" >
DockerCompose
< / a >
< / li >
< / ul >
< / nav >
< / li >
< li class = "md-nav__item" >
< a href = "#support-develop" class = "md-nav__link" >
Support Develop
< / a >
< / li >
< li class = "md-nav__item" >
< a href = "#faq" class = "md-nav__link" >
FAQ
< / a >
< / li >
< li class = "md-nav__item" >
< a href = "#other-questions" class = "md-nav__link" >
Other Questions
< / a >
< / li >
< / ul >
< / nav >
< / div >
< / div >
< / div >
< div class = "md-content" data-md-component = "content" >
< article class = "md-content__inner md-typeset" >
< h1 id = "personal-chatgpt-telegram-bot" > Personal ChatGPT Telegram Bot< a class = "headerlink" href = "#personal-chatgpt-telegram-bot" title = "Permanent link" > ⚓︎< / a > < / h1 >
< blockquote >
< p > Introducing the ultimate AI-powered chatbot for Telegram - the perfect companion for anyone looking for quick, accurate answers to their questions. Our bot uses state-of-the-art machine learning technology powered by the ChatGPT model, allowing it to understand natural language inputs and respond with human-like precision.< / p >
< p > With our bot, you can ask anything you want, from simple queries to complex questions. Whether you're looking for information on the latest news, need help with a math problem, or just want to chat with a virtual friend, our bot has you covered.< / p >
< p > What's more, our bot is designed to be easy to use and user-friendly. Simply type in your question or query, and the bot will do the rest, providing you with a quick and accurate response in seconds. No more scrolling through endless search results or struggling to find the information you need - our bot does all the hard work for you.< / p >
< p > So why wait? Try out our ChatGPT-powered Telegram bot today and experience the future of AI-powered chatbots for yourself!< / p >
< p > (с ) Generated by ChatGPT< / p >
< / blockquote >
< p > But seriously, the project uses your ChatGPT token to access the ChatGPT API and let you chat with ChatGPT directly in Telegram.< / p >
< h2 id = "features" > Features< a class = "headerlink" href = "#features" title = "Permanent link" > ⚓︎< / a > < / h2 >
< p > See for yourself how easy and convenient it is to use ChatGPT in Telegram. It is better to see once than to hear 100 times.< / p >
< video controls width = "450" >
< source id = "mp4" src = "demo.mp4" type = "video/mp4" >
< / video >
< h3 id = "commands" > Commands< a class = "headerlink" href = "#commands" title = "Permanent link" > ⚓︎< / a > < / h3 >
< p > < code > /clear_context< / code > - Clears the conversation context. In fact, it deletes the chat and creates a new one.< / p >
< p > < code > /prompt your_question< / code > - Allows you to ask a question outside the context of the main conversation.< / p >
< h2 id = "privacy" > Privacy< a class = "headerlink" href = "#privacy" title = "Permanent link" > ⚓︎< / a > < / h2 >
< p > See my last name in the domain? < a href = "https://mark.struchkov.dev" > I'm a developer< / a > , < a href = "https://struchkov.dev/blog/ru/" > blogger< / a > , and publicly active. I don't have the benefit of getting dirty under my own name. I assure you that your data is not transferred to third parties, even I do not know about your requests to ChatGPT. You can see for yourself by examining the code, it's opensource.< / p >
< h2 id = "lets-get-started" > Let's get started< a class = "headerlink" href = "#lets-get-started" title = "Permanent link" > ⚓︎< / a > < / h2 >
< p > Enough words, let's launch your personal ChatGPT Telegram bot. 🚀< / p >
< h3 id = "preparing" > Preparing< a class = "headerlink" href = "#preparing" title = "Permanent link" > ⚓︎< / a > < / h3 >
< ul >
< li > You must have < a href = "https://docs.docker.com/engine/install/" > Docker installed< / a > . You can run the project both on the PC and on the server.< / li >
< li > You must < a href = "https://t.me/BotFather" > register a bot in Telegram< / a > and get an access token.< / li >
< li > You also need < a href = "https://platform.openai.com/account/api-keys" > ChatGPT access token< / a > .< / li >
< li > You must know your telegramId. < a href = "https://t.me/myidbot" > You can find it out here.< / a > .< / li >
< / ul >
< h3 id = "docker-run" > Docker Run< a class = "headerlink" href = "#docker-run" title = "Permanent link" > ⚓︎< / a > < / h3 >
2023-03-16 02:16:25 +03:00
< div class = "admonition note" >
< p class = "admonition-title" > Support< / p >
< p > The following platforms are supported: linux/amd64,linux/arm64/v8< / p >
< / div >
2023-03-16 00:02:10 +03:00
< div class = "language-bash highlight" > < pre > < span > < / span > < code > < span id = "__span-0-1" > < a id = "__codelineno-0-1" name = "__codelineno-0-1" href = "#__codelineno-0-1" > < / a > docker< span class = "w" > < / span > run< span class = "w" > < / span > -it< span class = "w" > < / span > --name< span class = "w" > < / span > chatgpt-telegram-bot< span class = "w" > < / span > < span class = "se" > \< / span >
< / span > < span id = "__span-0-2" > < a id = "__codelineno-0-2" name = "__codelineno-0-2" href = "#__codelineno-0-2" > < / a > < span class = "w" > < / span > --env< span class = "w" > < / span > < span class = "nv" > TELEGRAM_BOT_TOKEN< / span > < span class = "o" > =< / span > < span class = "w" > < / span > < span class = "se" > \< / span >
< / span > < span id = "__span-0-3" > < a id = "__codelineno-0-3" name = "__codelineno-0-3" href = "#__codelineno-0-3" > < / a > < span class = "w" > < / span > --env< span class = "w" > < / span > < span class = "nv" > TELEGRAM_BOT_USERNAME< / span > < span class = "o" > =< / span > < span class = "w" > < / span > < span class = "se" > \< / span >
< / span > < span id = "__span-0-4" > < a id = "__codelineno-0-4" name = "__codelineno-0-4" href = "#__codelineno-0-4" > < / a > < span class = "w" > < / span > --env< span class = "w" > < / span > < span class = "nv" > TELEGRAM_PERSON_ID< / span > < span class = "o" > =< / span > < span class = "w" > < / span > < span class = "se" > \< / span >
< / span > < span id = "__span-0-5" > < a id = "__codelineno-0-5" name = "__codelineno-0-5" href = "#__codelineno-0-5" > < / a > < span class = "w" > < / span > --env< span class = "w" > < / span > < span class = "nv" > CHAT_GPT_TOKEN< / span > < span class = "o" > =< / span > < span class = "w" > < / span > < span class = "se" > \< / span >
< / span > < span id = "__span-0-6" > < a id = "__codelineno-0-6" name = "__codelineno-0-6" href = "#__codelineno-0-6" > < / a > < span class = "w" > < / span > upagge/chatgpt-telegram-bot:develop
< / span > < / code > < / pre > < / div >
< div class = "admonition warning" >
< p > < code > TELEGRAM_BOT_USERNAME< / code > - Specify a name with the ending bot here, not a public name.< / p >
< / div >
< h4 id = "telegram-proxy" > Telegram Proxy< a class = "headerlink" href = "#telegram-proxy" title = "Permanent link" > ⚓︎< / a > < / h4 >
< p > If you have Telegram blocked, you can specify proxy settings to connect.< / p >
< div class = "language-bash highlight" > < pre > < span > < / span > < code > < span id = "__span-1-1" > < a id = "__codelineno-1-1" name = "__codelineno-1-1" href = "#__codelineno-1-1" > < / a > docker< span class = "w" > < / span > run< span class = "w" > < / span > -it< span class = "w" > < / span > --name< span class = "w" > < / span > chatgpt-telegram-bot< span class = "w" > < / span > < span class = "se" > \< / span >
< / span > < span id = "__span-1-2" > < a id = "__codelineno-1-2" name = "__codelineno-1-2" href = "#__codelineno-1-2" > < / a > < span class = "w" > < / span > --env< span class = "w" > < / span > < span class = "nv" > TELEGRAM_BOT_TOKEN< / span > < span class = "o" > =< / span > < span class = "w" > < / span > < span class = "se" > \< / span >
< / span > < span id = "__span-1-3" > < a id = "__codelineno-1-3" name = "__codelineno-1-3" href = "#__codelineno-1-3" > < / a > < span class = "w" > < / span > --env< span class = "w" > < / span > < span class = "nv" > TELEGRAM_BOT_USERNAME< / span > < span class = "o" > =< / span > < span class = "w" > < / span > < span class = "se" > \< / span >
< / span > < span id = "__span-1-4" > < a id = "__codelineno-1-4" name = "__codelineno-1-4" href = "#__codelineno-1-4" > < / a > < span class = "w" > < / span > --env< span class = "w" > < / span > < span class = "nv" > TELEGRAM_PERSON_ID< / span > < span class = "o" > =< / span > < span class = "w" > < / span > < span class = "se" > \< / span >
< / span > < span id = "__span-1-5" > < a id = "__codelineno-1-5" name = "__codelineno-1-5" href = "#__codelineno-1-5" > < / a > < span class = "w" > < / span > --env< span class = "w" > < / span > < span class = "nv" > CHAT_GPT_TOKEN< / span > < span class = "o" > =< / span > < span class = "w" > < / span > < span class = "se" > \< / span >
< / span > < span id = "__span-1-6" > < a id = "__codelineno-1-6" name = "__codelineno-1-6" href = "#__codelineno-1-6" > < / a > < span class = "w" > < / span > --env< span class = "w" > < / span > < span class = "nv" > TELEGRAM_PROXY_ENABLE< / span > < span class = "o" > =< / span > < span class = "nb" > true< / span > < span class = "w" > < / span > < span class = "se" > \< / span >
< / span > < span id = "__span-1-7" > < a id = "__codelineno-1-7" name = "__codelineno-1-7" href = "#__codelineno-1-7" > < / a > < span class = "w" > < / span > --env< span class = "w" > < / span > < span class = "nv" > TELEGRAM_PROXY_HOST< / span > < span class = "o" > =< / span > < span class = "w" > < / span > < span class = "se" > \< / span >
< / span > < span id = "__span-1-8" > < a id = "__codelineno-1-8" name = "__codelineno-1-8" href = "#__codelineno-1-8" > < / a > < span class = "w" > < / span > --env< span class = "w" > < / span > < span class = "nv" > TELEGRAM_PROXY_PORT< / span > < span class = "o" > =< / span > < span class = "w" > < / span > < span class = "se" > \< / span >
< / span > < span id = "__span-1-9" > < a id = "__codelineno-1-9" name = "__codelineno-1-9" href = "#__codelineno-1-9" > < / a > < span class = "w" > < / span > --env< span class = "w" > < / span > < span class = "nv" > TELEGRAM_PROXY_TYPE< / span > < span class = "o" > =< / span > SOCKS5< span class = "w" > < / span > < span class = "se" > \< / span >
< / span > < span id = "__span-1-10" > < a id = "__codelineno-1-10" name = "__codelineno-1-10" href = "#__codelineno-1-10" > < / a > < span class = "w" > < / span > --env< span class = "w" > < / span > < span class = "nv" > TELEGRAM_PROXY_USERNAME< / span > < span class = "o" > =< / span > < span class = "w" > < / span > < span class = "se" > \< / span >
< / span > < span id = "__span-1-11" > < a id = "__codelineno-1-11" name = "__codelineno-1-11" href = "#__codelineno-1-11" > < / a > < span class = "w" > < / span > --env< span class = "w" > < / span > < span class = "nv" > TELEGRAM_PROXY_PASSWORD< / span > < span class = "o" > =< / span > < span class = "w" > < / span > < span class = "se" > \< / span >
2023-03-16 02:16:25 +03:00
< / span > < span id = "__span-1-12" > < a id = "__codelineno-1-12" name = "__codelineno-1-12" href = "#__codelineno-1-12" > < / a > < span class = "w" > < / span > upagge/chatgpt-telegram-bot:latest
2023-03-16 00:02:10 +03:00
< / span > < / code > < / pre > < / div >
< div class = "admonition note" >
< ul >
< li > Available options < code > SOCKS5< / code > , < code > SOCKS4< / code > , < code > HTTP< / code > .< / li >
< li > Optional. If there is no authorization, you can leave it blank.< / li >
< / ul >
< / div >
< h3 id = "dockercompose" > DockerCompose< a class = "headerlink" href = "#dockercompose" title = "Permanent link" > ⚓︎< / a > < / h3 >
< div class = "admonition warning" >
< p > Don't forget to create a file with the variable < code > .env< / code > .< / p >
< / div >
< div class = "tabbed-set tabbed-alternate" data-tabs = "1:2" > < input checked = "checked" id = "__tabbed_1_1" name = "__tabbed_1" type = "radio" / > < input id = "__tabbed_1_2" name = "__tabbed_1" type = "radio" / > < div class = "tabbed-labels" > < label for = "__tabbed_1_1" > < span class = "twemoji" > < svg xmlns = "http://www.w3.org/2000/svg" viewBox = "0 0 24 24" > < path d = "M13.983 11.078h2.119a.186.186 0 0 0 .186-.185V9.006a.186.186 0 0 0-.186-.186h-2.119a.185.185 0 0 0-.185.185v1.888c0 .102.083.185.185.185m-2.954-5.43h2.118a.186.186 0 0 0 .186-.186V3.574a.186.186 0 0 0-.186-.185h-2.118a.185.185 0 0 0-.185.185v1.888c0 .102.082.185.185.185m0 2.716h2.118a.187.187 0 0 0 .186-.186V6.29a.186.186 0 0 0-.186-.185h-2.118a.185.185 0 0 0-.185.185v1.887c0 .102.082.185.185.186m-2.93 0h2.12a.186.186 0 0 0 .184-.186V6.29a.185.185 0 0 0-.185-.185H8.1a.185.185 0 0 0-.185.185v1.887c0 .102.083.185.185.186m-2.964 0h2.119a.186.186 0 0 0 .185-.186V6.29a.185.185 0 0 0-.185-.185H5.136a.186.186 0 0 0-.186.185v1.887c0 .102.084.185.186.186m5.893 2.715h2.118a.186.186 0 0 0 .186-.185V9.006a.186.186 0 0 0-.186-.186h-2.118a.185.185 0 0 0-.185.185v1.888c0 .102.082.185.185.185m-2.93 0h2.12a.185.185 0 0 0 .184-.185V9.006a.185.185 0 0 0-.184-.186h-2.12a.185.185 0 0 0-.184.185v1.888c0 .102.083.185.185.185m-2.964 0h2.119a.185.185 0 0 0 .185-.185V9.006a.185.185 0 0 0-.184-.186h-2.12a.186.186 0 0 0-.186.186v1.887c0 .102.084.185.186.185m-2.92 0h2.12a.185.185 0 0 0 .184-.185V9.006a.185.185 0 0 0-.184-.186h-2.12a.185.185 0 0 0-.184.185v1.888c0 .102.082.185.185.185M23.763 9.89c-.065-.051-.672-.51-1.954-.51-.338.001-.676.03-1.01.087-.248-1.7-1.653-2.53-1.716-2.566l-.344-.199-.226.327c-.284.438-.49.922-.612 1.43-.23.97-.09 1.882.403 2.661-.595.332-1.55.413-1.744.42H.751a.751.751 0 0 0-.75.748 11.376 11.376 0 0 0 .692 4.062c.545 1.428 1.355 2.48 2.41 3.124 1.18.723 3.1 1.137 5.275 1.137a15.74 15.74 0 0 0 2.93-.266 12.248 12.248 0 0 0 3.823-1.389 10.51 10.51 0 0 0 2.61-2.136c1.252-1.418 1.998-2.997 2.553-4.4h.221c1.372 0 2.215-.549 2.68-1.009.309-.293.55-.65.707-1.046l.098-.288Z" / > < / svg > < / span > docker-compose.yml< / label > < label for = "__tabbed_1_2" > < span class = "twemoji" > < svg xmlns = "http://www.w3.org/2000/svg" viewBox = "0 0 24 24" > < path d = "M20.41 3c1.39 2.71 1.94 5.84 1.59 9-.2 3.16-1.3 6.29-3.17 9l-1.53-1c1.61-2.43 2.55-5.2 2.7-8 .34-2.8-.11-5.57-1.3-8l1.71-1M5.17 3 6.7 4C5.09 6.43 4.15 9.2 4 12c-.34 2.8.12 5.57 1.3 8l-1.69 1c-1.4-2.71-1.96-5.83-1.61-9 .2-3.16 1.3-6.29 3.17-9m6.91 7.68 2.32-3.23h2.53l-3.78 5 2.2 4.92h-2.26L11.71 14l-2.43 3.33H6.76l3.9-5.12-2.13-4.76h2.27l1.28 3.23Z" / > < / svg > < / span > .env< / label > < / div >
< div class = "tabbed-content" >
< div class = "tabbed-block" >
< div class = "language-yaml highlight" > < pre > < span > < / span > < code > < span id = "__span-2-1" > < a id = "__codelineno-2-1" name = "__codelineno-2-1" href = "#__codelineno-2-1" > < / a > < span class = "nt" > version< / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "s" > ' 3.8' < / span >
< / span > < span id = "__span-2-2" > < a id = "__codelineno-2-2" name = "__codelineno-2-2" href = "#__codelineno-2-2" > < / a > < span class = "nt" > services< / span > < span class = "p" > :< / span >
< / span > < span id = "__span-2-3" > < a id = "__codelineno-2-3" name = "__codelineno-2-3" href = "#__codelineno-2-3" > < / a >
< / span > < span id = "__span-2-4" > < a id = "__codelineno-2-4" name = "__codelineno-2-4" href = "#__codelineno-2-4" > < / a > < span class = "w" > < / span > < span class = "nt" > chat-gpt< / span > < span class = "p" > :< / span >
2023-03-16 02:16:25 +03:00
< / span > < span id = "__span-2-5" > < a id = "__codelineno-2-5" name = "__codelineno-2-5" href = "#__codelineno-2-5" > < / a > < span class = "w" > < / span > < span class = "nt" > image< / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "l l-Scalar l-Scalar-Plain" > upagge/chatgpt-telegram-bot:latest< / span >
2023-03-16 00:02:10 +03:00
< / span > < span id = "__span-2-6" > < a id = "__codelineno-2-6" name = "__codelineno-2-6" href = "#__codelineno-2-6" > < / a > < span class = "w" > < / span > < span class = "nt" > container_name< / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "l l-Scalar l-Scalar-Plain" > chatgpt-bot< / span >
< / span > < span id = "__span-2-7" > < a id = "__codelineno-2-7" name = "__codelineno-2-7" href = "#__codelineno-2-7" > < / a > < span class = "w" > < / span > < span class = "nt" > restart< / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "l l-Scalar l-Scalar-Plain" > always< / span >
< / span > < span id = "__span-2-8" > < a id = "__codelineno-2-8" name = "__codelineno-2-8" href = "#__codelineno-2-8" > < / a > < span class = "w" > < / span > < span class = "nt" > environment< / span > < span class = "p" > :< / span >
< / span > < span id = "__span-2-9" > < a id = "__codelineno-2-9" name = "__codelineno-2-9" href = "#__codelineno-2-9" > < / a > < span class = "w" > < / span > < span class = "nt" > TELEGRAM_BOT_TOKEN< / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "l l-Scalar l-Scalar-Plain" > ${TELEGRAM_BOT_TOKEN}< / span >
< / span > < span id = "__span-2-10" > < a id = "__codelineno-2-10" name = "__codelineno-2-10" href = "#__codelineno-2-10" > < / a > < span class = "w" > < / span > < span class = "nt" > TELEGRAM_BOT_USERNAME< / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "l l-Scalar l-Scalar-Plain" > ${TELEGRAM_BOT_USERNAME}< / span >
< / span > < span id = "__span-2-11" > < a id = "__codelineno-2-11" name = "__codelineno-2-11" href = "#__codelineno-2-11" > < / a > < span class = "w" > < / span > < span class = "nt" > TELEGRAM_PERSON_ID< / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "l l-Scalar l-Scalar-Plain" > ${TELEGRAM_PERSON_ID}< / span >
< / span > < span id = "__span-2-12" > < a id = "__codelineno-2-12" name = "__codelineno-2-12" href = "#__codelineno-2-12" > < / a > < span class = "w" > < / span > < span class = "nt" > CHAT_GPT_TOKEN< / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "l l-Scalar l-Scalar-Plain" > ${CHAT_GPT_TOKEN}< / span >
< / span > < / code > < / pre > < / div >
< / div >
< div class = "tabbed-block" >
< div class = "language-text highlight" > < pre > < span > < / span > < code > < span id = "__span-3-1" > < a id = "__codelineno-3-1" name = "__codelineno-3-1" href = "#__codelineno-3-1" > < / a > TELEGRAM_BOT_TOKEN=
< / span > < span id = "__span-3-2" > < a id = "__codelineno-3-2" name = "__codelineno-3-2" href = "#__codelineno-3-2" > < / a > TELEGRAM_BOT_USERNAME=
< / span > < span id = "__span-3-3" > < a id = "__codelineno-3-3" name = "__codelineno-3-3" href = "#__codelineno-3-3" > < / a > TELEGRAM_PERSON_ID=
< / span > < span id = "__span-3-4" > < a id = "__codelineno-3-4" name = "__codelineno-3-4" href = "#__codelineno-3-4" > < / a > CHAT_GPT_TOKEN=
< / span > < / code > < / pre > < / div >
< / div >
< / div >
< / div >
< h2 id = "support-develop" > < img alt = "❤" class = "twemoji heart" src = "https://cdnjs.cloudflare.com/ajax/libs/twemoji/14.0.2/svg/2764.svg" title = ":heart:" / > Support Develop< a class = "headerlink" href = "#support-develop" title = "Permanent link" > ⚓︎< / a > < / h2 >
< p > Sponsorship makes a project sustainable because it pays for the time of the maintainers of that project, a very scarce resource that is spent on developing new features, fixing bugs, improving stability, solving problems, and general support. The biggest bottleneck in Open Source is time.< / p >
< ul >
< li > Bank card for residents of the Russian Federation: < a href = "https://www.tinkoff.ru/cf/4iU6NB3uzqx" > https://www.tinkoff.ru/cf/4iU6NB3uzqx< / a > < / li >
< li > Crypto:< ul >
< li > TON: < code > struchkov-mark.ton< / code > < / li >
< li > BTC (Taproot): < code > bc1pt49vnp43c4mktk6309zlq3020dzd0p89gc8d90zzn4sgjvck56xs0t86vy< / code > < / li >
< li > ETH: < code > 0x7668C802Bd71Be965671D4Bbb1AD90C7f7f32921< / code > < ul >
< li > USDT (ERC-20): < code > 0x7668C802Bd71Be965671D4Bbb1AD90C7f7f32921< / code > < / li >
< li > DAI (ERC-20): < code > 0x7668C802Bd71Be965671D4Bbb1AD90C7f7f32921< / code > < / li >
< / ul >
< / li >
< li > BNB: < code > 0xDa41aC95f606850f2E01ba775e521Cd385AA7D03< / code > < ul >
< li > USD: < code > 0xDa41aC95f606850f2E01ba775e521Cd385AA7D03< / code > < / li >
< li > DAI: < code > 0xDa41aC95f606850f2E01ba775e521Cd385AA7D03< / code > < / li >
< / ul >
< / li >
< / ul >
< / li >
< / ul >
< h2 id = "faq" > FAQ< a class = "headerlink" href = "#faq" title = "Permanent link" > ⚓︎< / a > < / h2 >
< details class = "question" >
< summary > What model is used?< / summary >
< p > For now the < code > gpt-3.5-turbo< / code > model is used. In future versions you will be able to choose the model.< / p >
< / details >
< h2 id = "other-questions" > Other Questions< a class = "headerlink" href = "#other-questions" title = "Permanent link" > ⚓︎< / a > < / h2 >
< p > If you don't understand something, you can ask a question here < img alt = "👇" class = "twemoji" src = "https://cdnjs.cloudflare.com/ajax/libs/twemoji/14.0.2/svg/1f447.svg" title = ":point_down:" / > or in a < a href = "https://github.com/uPagge/openai-chatgpt-telegram-bot/discussions" > discussion on GitHub.< / a > < / p >
< h2 id = "__comments" > Comments< / h2 >
< div id = "remark42" > < / div >
< script >
var remark_config = {
host: "https://comments.struchkov.dev",
site_id: 'docs',
components: ['embed'],
locale: 'en',
theme: localStorage.theme,
show_email_subscription: true,
simple_view: false
};
< / script >
< script > ! function ( e , n ) { for ( var o = 0 ; o < e . length ; o ++ ) { var r = n . createElement ( "script" ) , c = ".js" , d = n . head || n . body ; "noModule" in r ? ( r . type = "module" , c = ".mjs" ) : r . async = ! 0 , r . defer = ! 0 , r . src = remark _config . host + "/web/" + e [ o ] + c , d . appendChild ( r ) } } ( remark _config . components || [ "embed" ] , document ) ; < / script >
< / article >
< / div >
< / div >
< / main >
< footer class = "md-footer" >
< div class = "md-footer-meta md-typeset" >
< div class = "md-footer-meta__inner md-grid" >
< div class = "md-copyright" >
< / div >
< / div >
< / div >
< / footer >
< / div >
< div class = "md-dialog" data-md-component = "dialog" >
< div class = "md-dialog__inner md-typeset" > < / div >
< / div >
< script id = "__config" type = "application/json" > { "base" : "." , "features" : [ "navigation.instant" , "navigation.indexes" , "navigation.sections" , "navigation.tracking" , "navigation.footer" , "navigation.tabs.sticky" , "navigation.prune" , "content.code.copy" , "content.code.annotate" , "content.tooltips" , "toc.follow" ] , "search" : "assets/javascripts/workers/search.208ed371.min.js" , "translations" : { "clipboard.copied" : "Copied to clipboard" , "clipboard.copy" : "Copy to clipboard" , "search.result.more.one" : "1 more on this page" , "search.result.more.other" : "# more on this page" , "search.result.none" : "No matching documents" , "search.result.one" : "1 matching document" , "search.result.other" : "# matching documents" , "search.result.placeholder" : "Type to start searching" , "search.result.term.missing" : "Missing" , "select.version" : "Select version" } , "version" : { "provider" : "mike" } } < / script >
< script src = "assets/javascripts/bundle.2a6f1dda.min.js" > < / script >
< / body >
< / html >