Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: Add OpenAI GPT model integration #39

Merged
merged 13 commits into from
Apr 14, 2023

Conversation

flacial
Copy link
Member

@flacial flacial commented Apr 13, 2023

Overview

This PR adds an initial integration for the OpenAI GPT model to the existing codebase. The changes include modifications to the config.ts file to add the openaiApiKey property, importing the openai package in the package.json file, and updating the commands.ts file to include a new slash command named ask that prompts the assistant to answer a question using the GPT model.

Engineering the prompt

The prompt was engineered following the few-shot method that provides the model with an example of how it should respond and a few parameters such as being friendly and not responding to prompts that are unrelated to coding.

As a start, I think the few-shots method is the best choice. If we find ourselves in the need to provide the model with more examples while aiming to reduce the overall cost of big prompts, we can try fine-tuning it.

Changes

The following changes have been made:

  • config.ts
    • Added the openaiApiKey property to the Config interface.
    • The environment variable OPENAI_API_KEY is now required.
  • package.json
    • Added the openai package as a dependency.
  • commands.ts
    • Added a new slash command named ask that prompts the assistant to answer a question using the GPT model.
  • commandsReplies.ts
    • Added sendPrompt function that prompts the assistant to answer a question using the GPT model.

These changes allow the assistant to answer questions using the OpenAI GPT model.

Related issues

Copy link
Contributor

@scotthallock scotthallock left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice!

We changed the engineered prompt to suits our case more such as including Discord code block syntax. We also increase the max_tokens so the completion is longer and more detailed.
@flacial flacial requested a review from JasirZaeem April 14, 2023 12:23
@JasirZaeem
Copy link
Member

I suggest to Limit the ask command to a particular channel before merging, meant specifically for students to ask questions to the bot.

src/Bot/commands/commands.ts Show resolved Hide resolved
@flacial flacial merged commit d3d1be9 into garageScript:main Apr 14, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants