Giter Club home page Giter Club logo

gpt_demo's Introduction

GPT3 SMS Bot Starter Kit

This is the code for this video on Youtube by Siraj Raval. Live page. originally by promptable i.e GPT3 SMS Bot Starter Kit using Twilio. Which was Based on this tutorial.

Running this project

Things you will need

Create a Twilio Account / Phone Number

Based on this tutorial. After your account is created, use this command to create a phone number that can receive SMS messages:

twilio phone-numbers:update PHONE_NUMBER --sms-url https://RANDOM_STRING.ngrok.io/messages

You'll need the Twilio CLI installed. You'll need to "upgrade" to paid if you want to remove the Twilio branding from the SMS replies.

Dependencies

Install the dependencies:

npm install

Environment Variables

Copy the .env.example file to .env:

cp .env.example .env

Fill in your TWILIO and OPENAI Keys, and your personal PHONE_NUMBER.

Compile the TypeScript to JavaScript

Compile the project:

npm run build

Note that this runs the TypeScript compiler, tsc, you could also run npx tsc to get the same output.

The TypeScript project will be compiled into the dist directory. You can also continuously compile the project as it changes with:

npm run watch

Run the project

Start the web server with:

npm start

Expose the local server with ngrok

To respond to an incoming webhook you will need a publicly available URL. ngrok is a tool that can tunnel through from a public URL to your machine. Once you've downloaded and installed ngrok you can run it like so:

ngrok http 3000

The ngrok terminal will show you a URL, like https://RANDOM_STRING.ngrok.io.

Connect your phone number to your app

Using the ngrok URL from the last part, you can set up your Twilio phone number with your application. Edit your phone number and in the Messaging section, next to when "A message comes in" enter your ngrok URL with the path /messages.

https://RANDOM_STRING.ngrok.io/messages

Save the phone number and you are ready. Send your number a message and receive a reply. Type "reset" to reset the chat thread history and bdeing again.

Deploy with FLy.io

fly launch (if it's the first time)
# update fly.toml internal port to 3000
fly deploy
# Set your secrets from .env
fly secrets set --app gpt3-chat TWILIO_ACCOUNT_SID= TWILIO_AUTH_TOKEN= TWILIO_PHONE_NUMBER= OPENAI_API_KEY=

GPT3 Example Integration

const { Configuration, OpenAIApi } = require("openai");

const configuration = new Configuration({
  apiKey: process.env.OPENAI_API_KEY,
});
const openai = new OpenAIApi(configuration);

const response = await openai.createCompletion({
  model: "text-davinci-003",
  prompt: "Please reply to the chat below:\n",
  temperature: 0.7,
  max_tokens: 256,
  top_p: 1,
  frequency_penalty: 0,
  presence_penalty: 0,
});

Promptable Integration

To get started using Promptable to create and fetch your prompts, go to https://promptable.ai!

Then, create and deploy a prompt and fetch it like this

const { data } = await axios.get(`https://promptable.ai/api/prompt/<YOUR PROMPT ID HERE>/deployment/active`);
const { text, configs } = data // get your prompt text and configs
//... now use it in the chat bot!

Other

Get sms messages on your mac. https://support.apple.com/guide/messages/get-sms-texts-from-iphone-on-your-mac-icht8a28bb9a/mac

TODOs/ Feature Requests

TODO: Add Voice Chats:

gpt_demo's People

Contributors

cfortuner avatar bfortuner avatar llsourcell avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.