Using this starter kit, you can create your custom Copilot in less than 30 minutes for your own use case (sales, product, marketing, HR, etc) that build upon the master RPM Copilot - it's like AIner making babies ๐ถ
See a 10 minute video tutorial on how to create your own Copilot.
On the top right of this page, click Use this template -> Create a new repository.
Fill in the required fields and click Create repository from template. We recommend keeping the repository private.
Your newly created repository will hold all the configuration and data (PDFs, documents, etc) that defines how your copilot works.
For your custom copilot to show up at rpm.sidekik.ai, you need to deploy it. To do so, go to rpm.sidekik.ai, open the left sidebar, click "New copilot" on the top left, and fill in the fields. You can choose the name yourself; the Github link will be to the repository you just created.
When you've submitted the form, you will get back a public key -- copy this. In order to deploy your copilot, we need read-access to your copilot repository. For this, you will add a deploy key to the repository you just created.
To do so, follow the provided link or navigate to your Copilot repository > Settings > Deploy keys. Press "Add deploy key".
Add a title, e.g. "Copilot deployment", and press "Add key". Write access is not needed.
If you've successfully added a key, it should look like this:
Once done, we will automatically deploy your copilot. This may take 1-2 minutes.
After successful deployment your copilot will show up at rpm.sidekik.ai. At the top left you can choose which copilot you chat with: the master RPM copilot or one of the custom copilots you created.
After switching to the custom copilot you can start chatting!
Alright, you now have deployed a copilot, but you haven't really made it yours. The next section will show you how to customize your copilot.
There are three main ways you can customize your copilot: Knowledge base and Prompts that change the copilot's behaviour, and Front-end configuration that changes how it is presented. To see these in action, you can check out several examples in the examples/
directory -- to use one of the provided examples, just copy over the relevant files.
The knowledge base is the set of documents that your copilot relies on when responding to you - you can think of it as the things you've taught it. The copilot has access to everything here when trying to answer your questions. To add things into the knowledge base, just drop files into data/
directory.
The following file formats are supported:
pdf
filescsv
,tsv
andxls
/xlsx
(Excel) filestxt
files
Many other file formats (e.g. Markdown, Powerpoint, ePub) also work but are not consistently tested -- they are parsed using the Python unstructured package.
In the prompt you instruct your copilot about its goals, behaviour, style, etc. There aren't many hard rules to this; you can start from one of our provided examples and iterate to improve the copilot's behaviour. Prompt engineering is a deep topic; for a more in-depth overview, see OpenAI's list of prompting guides. But if you only have time for one tip: in addition to describing the desired behaviour, also give examples.
The prompt is not a static piece of text. It is a template that will be filled at runtime, after the user has messaged the copilot but before sending the request to the LLM. For this reason, you should always place three template variables into the prompt template file (ideally at the end), and they will be substituted as follows:
{context}
: the most relevant documents retrieved from your knowledge base.{history}
: the conversation history between the user and the copilot.{question}
: the most recent input from the user -- the message they just sent.
You can change some aspects of how the copilot is presented to the user, by changing the configuration in configuration.json
. This screenshot shows visually what each setting in that file controls:
Note that description
is rendered as markdown, so you can add formatted text, images, and anything else that markdown supports.
By default, only you (the creator of the custom copilot) can chat with your created copilot. You can easily give access to your team members so they can chat with it. Just add their email which they used to sign up to master RPM Copilot to the allowed_emails
list in configuration.json
. The emails need to exactly match the email used to log into rpm.sidekik.ai. Adding the emails into this list will not send any notification.
You can use a REST API to integrate master RPM Copilot (AIner) anywhere you wish. It currently allows 10 concurrect requests. See this gist script on how to call the API, or the full API docs. Currently, the REST API is unauthenticated (but a measure of privacy is provided by the fact that you can only access a chat's history if you know its uuid).
If you wish to integrate your own newly created custom Copilot, then please ask us for an API key.
Who can access my custom copilot?
By default, only the creator of the custom copilot has access to it.
How do I share my custom copilot with a friend?
- Open the
configuration.json
file. - Locate the
allowed_emails
list in the configuration.json file. - Add your friend's email to the allowed_emails list. Make sure the added email matches the email your friend uses to log into rpm.sidekik.ai.
- Save the changes to the configuration.json file and commit.
- Wait for the latest commit to be deployed.
- Your friend should now see the custom copilot in the left sidebar, and be able to chat with it.
Where is my data sent?
- Everything you put into the Github repository is mirrored on our servers for ingestion and serving user messages.
- Upon every user message, a subset of the files in the
/data
directory gets sent to OpenAI, along with the prompt template, conversation history, and user message.
If you have concerns about adding some sensitive data, please talk to us before adding it to your custom copilot.