Coder Social home page Coder Social logo

embernet / sidekick Goto Github PK

View Code? Open in Web Editor NEW
19.0 2.0 8.0 26.31 MB

Sidekick is an AI powered tool that uses the OpenAI API and GPT-4 model for thinking, exploring ideas, problem-solving, knowledge-building, and getting things done.

License: MIT License

Makefile 0.36% Python 18.21% HTML 0.39% CSS 0.26% JavaScript 80.46% Dockerfile 0.20% Mako 0.10% Shell 0.02%
artificial-intelligence chatbot innovation openai openai-api problem-solving

sidekick's Introduction

Sidekick

Sidekick

Table of contents

Description

Sidekick is an AI powered tool for creativity, thinking, learning, exploring ideas, problem-solving, knowledge-building, and getting things done.

It provides a chat interface to OpenAI's GPT models along with pre-canned AI personas and a prompt fragment library to help you get more out of the AI and a working environment where you can create notes by selecting the most interesting and useful parts of the chat to edit and organise into a more complete text aligned with what you want.

Guided tour

For more details, see the Sidekick manual For more insights on how to use Sidekick, ask the Sidekick AI Help

Login

Login, or create a new account if you don't already have one. Each user has their own database of chats and notes.

Logon page

Chat with OpenAI GPT-4 or GPT-3.5-turbo

Once you have configured the app with your OpenAI API key, you can chat with the AI using the API. All your chats will be stored in Sidekick and you can edit them and use them to create notes.

Sidekick AI Chat

Chat Prompt Templates

Clicking the Spanner button in the main toolbar or clicking the 'Prompt Engineer' button at the bottom of the Chat window opens the Prompt Engineer, which includes a selection of pre-canned prompt templates.

Click a template name to copy the template to the prompt window. Prompt templates have this structure:

Some prompt text with optional {PARAMETERS} that you can double click on to replace with your own text.

To save new prompt templates of your own, just add a prompt name like this above your prompt and click the save button.

Sidekick Prompt Templates

Chat context menu

Right clicking on a message in the chat lets you copy it to the clipboard, copy it as HTML, append it to the prompt, use it as the prompt, append it to a note, append all messages to a note, delete it, or delete all messages. Curating the chat history by deleting individual messages that were not what you wanted can be a useful way to improve the AI's responses.

Sidekick chat context menu

Pick from different AI personas

The Personas tool lets you change the persona of the AI so the response can be provided from a perspective that suits your purpose. You can filter personas by name, keywords in their profile, and favourite status. So you can search for personas that are good at a particular topic or that have a particular personality. E.g. try searching for expert, creative, logic, company.

Sidekick AI Personas

Ask again with different personas

Different personas can give you different perspectives on the same prompt.

Sidekick ask again with persona

Syntax highlighting of code

Code blocks are syntax highlighted.

Sidekick Syntax Highlighting

Change the AI model settings

Model settings lets you change the model and the temperature and other settings to alter (creativity / consistency) of the response.

Sidekick Model Settings

Sidekick Prompt Composer

Prompt composer lets you build your prompt from a library of fragments.

Sidekick Prompt Composer

Sidekick Script

Sidekick Script can be created in a jupyter notebook style tool that lets you create cells of different types including text, lists, and templates to parameterise prompts for querying the AI.

Here is an example script to generate a quiz where the number of questions, topic areas, themes, methods for creating questions, and difficulty levels are parameterised. The script uses the AI to generate the questions and answers:

Sidekick Script

Sidekick Script List

Sidekick Script Text

Sidekick Script List of Methods

Sidekick Script Prompt

Sidekick Script Response - Quiz Questions

Sidekick Script Response - Quiz Answers

Sidekick Notes

Sidekick Notes lets you create and edit notes. You can also import and export notes as text files, copy selected AI responses over from the chat window, and use the NoteWriter AI to write your note for you by telling it what you want.

Sidekick Notes

Notes let you edit the content in plain text markdown and then render a view with the formatting applied.

Note Markdown Rendering

Sidekick Manual

The Sidekick Manual explains the features of the tool, the ideas behind them, how to use Sidekick and different scenarios you can use it for.

Sidekick Manual

Sidekick AI Help

Sidekick AI Help lets you ask questions of the manual rather than reading it!

It also draws on the knowledge of GPT to expand on the principles outlined in the manual, which includes innovation techniques as well as descriptions of how the tool can be used, and provides examples of how to apply the tool to what you are working on.

Sidekick AI Help

Why Sidekick?

Everyone has access to Generative AI in the form of ChatGPT and other tools. However most of these tools are designed for general use and are built on top of APIs that are more powerful under the hood. Many of the out-of-the-box tools also use the prompts users enter to further train their models. This is generally not the case for the APIs.

Sidekick is intended as a tool for people who want to use Generative AI to help them think, explore ideas, solve problems, build knowledge, and get things done. It is designed to be easy to use and to help you get the most out of the AI.

It's also using the APIs directly, so once you get your API key you can deploy Sidekick wherever you want and use it without having to worry about your prompts being used to train the AI. As all the code is provided you can also extend it or modify it to suit your needs.

GenAI has much more potential than chat. OpenAI have been making it easier to build on the models by adding features to the API. For example, You can write a program to call GPT-4 and tell it about other APIs you have access to and what they do so that as part of GPT-4's response to your prompt, it can ask you to make calls to those other APIs to get more information. This means you can integrate the 'AI in the cloud' to other information sources you have, and use its intelligence to build automations and enable it to answer questions based on realtime data or data only you have access to.

Sidekick v0 is the beginning of a project to provide a platform for extending and integrating AIs with information sources and other APIs to build a new kind of AI-powered tool for creativity, thinking, exploring ideas, problem-solving, knowledge-building, and getting things done.

You can either just deploy this and let it run, or you can use it as a starting point to build your own AI-powered tools.

Sidekick Features

  • Chat with an AI
  • Change the persona of the AI
  • Re-ask the same questions of the AI with different personas
  • Compose your prompt from a library of fragments
  • Create and edit notes
  • Augment notes with the best parts from your chats
  • Export notes
  • Import notes
  • Use the Note Writer to write your note for you
  • Add notes to the AI knowledge library so they can be used as knowledge in Chat
  • Use the AI knowledge library to augment the AI's knowledge
    • Create notes defining concepts of information that you want the AI to know about
    • Click the book icon at the bottom of the Chat window to load notes as knowledge for use in that chat
    • Your notes will be added into the user prompt automatically to provide context for the AI to respond to your prompt
    • Add knowledge notes about you and how you want the AI to behave, what you are interested in, or specific knowledge relevant to you the AI doesn't know about

Sidekick Release Notes

Go here: Release notes

Usage

  1. From the home page
    1. Click the Explore Chats button to show or hide the Chat Explorer view
    2. Click the Chat button to show or hide the Chat Window
    3. Click the Notes button to show or hide the Notes Explorer view
    4. Click the Personas button to change the persona of the AI
    5. Click the Prompt Composer button to show or hide the prompt composer
  2. When in the Chat Window
    1. Enter a prompt
    2. Click the Chat button or hit return to chat with the AI
    3. Chats are saved automatically
    4. Click in the name field at the top of the chat if you want to rename it. Escape clears the name so you can enter a new one.
  3. Right click on a chat to:
    1. Copy it to the clipboard
    2. Copy as HTML to the clipboard, where responses are in markdown formatting
    3. Append to chat prompt, e.g. to refer to all or part of a previous response
    4. Use as chat prompt, e.g. to edit and continue the conversation
    5. Append to note, e.g. to save the most interesting and useful parts of the chat
    6. Append all to note, to save the whole chat into a note along with other chats or your own notes or to edit it
    7. Delete it from the chat history so it doesn't impact the AI's future responses
    8. Delete all messages to clear the chat and start again
  4. Click the Notes button to show or hide the Notes Explorer view
  5. From the Notes Explorer view
    1. Filter notes by name
    2. Bulk delete filtered notes that are no longer required
    3. Click on a note to edit it (there is a delete button in the note editor if you want to delete it)
  6. When in a Note
    1. Click the Export button to download a note as a local text file
    2. Click the Import button to import a local text file into the current note
    3. Enter a prompt at the bottom of the note and click the Chat button or hit return to chat with the AI about the note
  7. Click the Model Settings button to open the Model Settings, where you can:
    1. Change the model
    2. Change the temperature and other model settings to alter (creativity / consistency) of the response

Examples

Running Sidekick

Prerequisites

  • You will need your own OpenAI API key to use this application. You can get one here.
  • Tech stack is: Python Flask NodeJS React MaterialUI, and you will need pipenv, npm, python3

Installation

See the Local installation guide for how to get this up and running.

Configuration

The plan is to make all configuration editable from the user interface. For now, you can configure the application by editing the JSON configuration files.

To see how to change the way the application is installed and run and where it stores its settings and data, see the configuration guide.

About

This project is in active development, however each release is intended to be ready to use and feature complete as far as it has so far been developed.

Contribution guidelines for this project

License

MIT License

Roadmap

This project is in active development. You can see the roadmap here.

References

Go here: References

sidekick's People

Contributors

dependabot[bot] avatar embernet avatar karimtabet avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

sidekick's Issues

On wide screens the text fills up the horizontal space - UI improvement

In ChatGPT and on websites in general, text is usually wrapped into a limited size. This is done because it's much easier to read (and probably other reasons as well).

Currently sidekick fills in the horizontal space which makes the output hard to read, especially on wide screens

SIdekick doesn't wrap:
image

ChatGPT wraps:
image

When logging in, everything is empty

A user needs to click the "new chat" icon to get the chat open. Should probably default to having the chat open. Especially for users that are trying it out for the first time

image

Personas that provide concise answers missing

In ChatGPT there is a system prompt. A very common one goes along the lines of "be concise, get directly to the answer, don't apologize". There is a persona like this missing.

On that note, the default persona "the answerer" is quite frustrating because it provides incredibly lengthy answers to simple queries, even when adding "be concise" to the prompt (probably hard to overwrite the original prompt). We should probably have a discussion on what the default persona should be.

Chat box does not follow text - UI improvement

In Firefox and Chrome on linux.

When generating text, and the chat box has been filled vertically, sidekick does not follow the newly generated text. A user has to manually scroll down to see it.

This is especially noticeable when writing a followup question and nothing appears until a user scrolls down

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.