Skip to content

An example extension in go using retrevial-augmented generation

License

Notifications You must be signed in to change notification settings

copilot-extensions/rag-extension

Repository files navigation

Retrevial Augmented Generation Extensions Sample

Note

Copilot Extensions are in public beta and may be subject to change.

Description

This project is a Go application that demonstrates how to use retrevial augmented generation in a GitHub Copilot Extension.

Prerequisites

  • Go 1.16 or higher
  • Set the following environment variables (example below):
export PORT=8080
export CLIENT_ID=Iv1.0ae52273ad3193eb // the application id
export CLIENT_SECRET="your_client_secret" // generate a new client secret for your application
export FQDN=https://6de513480979.ngrok.app // use ngrok to expose a url

Installation:

  1. Clone the repository:
git clone git@github.com:copilot-extensions/rag-extension.git
cd rag-extension
  1. Install dependencies:
go mod tidy

Usage

  1. Start up ngrok with the port provided:
ngrok http http://localhost:8080
  1. Set the environment variables (use the ngrok generated url for the FDQN)
  2. Run the application:
go run .

Accessing the Agent in Chat:

  1. In the Copilot tab of your Application settings (https://github.com/settings/apps/<app_name>/agent)
  • Set the URL that was set for your FQDN above with the endpoint /agent (e.g. https://6de513480979.ngrok.app/agent)
  • Set the Pre-Authorization URL with the endpoint /auth/authorization (e.g. https://6de513480979.ngrok.app/auth/authorization)
  1. In the General tab of your application settings (https://github.com/settings/apps/<app_name>)
  • Set the Callback URL with the /auth/callback endpoint (e.g. https://6de513480979.ngrok.app/auth/callback)
  • Set the Homepage URL with the base ngrok endpoint (e.g. https://6de513480979.ngrok.app/auth/callback)
  1. Ensure your permissions are enabled in Permissions & events >
  • Account Permissions > Copilot Chat > Access: Read Only
  1. Ensure you install your application at (https://github.com/apps/<app_name>)
  2. Now if you go to https://github.com/copilot you can @ your agent using the name of your application.

What Can It Do

Test out the agent with the following commands!

Description Prompt
User asking @agent how to configure a Copilot extension @agent How do I configure a copilot extension?
User asking @agent what a Copilot extension looks like @agent What is the response format for a copilot extension?

Copilot Extensions Documentation

About

An example extension in go using retrevial-augmented generation

Topics

Resources

License

Code of conduct

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages