GithubHelp home page GithubHelp logo

itsharex / cuttlefish Goto Github PK

View Code? Open in Web Editor NEW

This project forked from cube2222/cuttlefish

0.0 0.0 0.0 8.01 MB

Desktop ChatGPT-based Assistant that uses Tools

License: Mozilla Public License 2.0

Shell 1.42% JavaScript 6.88% Go 37.83% TypeScript 53.53% CSS 0.06% HTML 0.30%

cuttlefish's Introduction

Cuttlefish

Cuttlefish is a desktop chat app for ChatGPT. It's main feature is the ability to use tools, like the terminal, search, or get information from URLs. Specifically, it can use your local terminal to accomplish tasks you give it.

It supports the ChatGPT-3.5 model, as well as GPT-4. It uses an OpenAI platform API key and is mainly aimed at a technical users.


Let's start with two quick demos, that show the power of Cuttlefish. First, a simple example of using the Terminal tool: wifi-approvals

And now, a more complex example that uses a combination of the search, get_url, and chart tools: countries

Installation

On MacOS you can just

brew tap cube2222/cube2222
brew install cuttlefish

on other systems, download the archive for your system from the latest release and run the binary inside it.

Tools

There's multiple tools available in Cuttlefish. Let's go over them one by one.

Terminal

The most powerful tool, really. It allows the Assistant to run arbitrary commands on your host. It's very useful to give it tasks to do and have it solve them. It's also quite useful to ask questions about your own computer.

By default, terminal commands require approval, so you'll be able to review them before they actually get executed. However, you can customize that in the settings.

Search

Search allows the Assistant to search the web using Google Custom Search. You'll need to set up the proper API keys (the app settings contain a how-to), but on the plus side, as of the time of writing, the first 100 searches per day are free.

If you wonder why just scraping Google web results is not the right approach - it's because that will quickly get your IP banned.

URL Getter

The URL Getter allows the Assistant to get the contents of a specified website. It's very useful when paired with the search tool in order to drill down on the results. In order to limit the size of the data, it has a couple of optimizations:

  • It has custom parses for certain websites, as of the time of writing that's Wikipedia and StackOverflow.
  • For other pages, it will only get the first 300 words of the (heuristically found) main content of the page.

Chart

Displays a chart using Apache ECharts. The assistant should use it whenever you ask it to plot/chart something.

Image Generator

Uses Dalle2 to generate an image and embed it in the chat.

Python

Even though the Assistant can use the Terminal to run short Python scripts, an explicit Python tool is included as well. However, it's disabled by default, because the Assistant tends to overuse it, and it's not as consistently successful as with other tools.

Configuration

You can configure global app settings or conversation settings. With the conversation settings being either specific to a single conversation or the default that's used for new ones.

Additionally, conversation templates are on the roadmap and will let you have multiple "personalities" (sets of default conversation settings) to chat with.

Models

Cuttlefish support both GPT-3.5-Turbo and GPT-4. GPT-3.5 often goes off the rails and requires you to retry your prompts, but it tends to get there eventually. GPT-4 is much more stable and consistent, but is waaaaay more expensive, so take care when using it - it's also quite slow.

Roadmap

  • Conversation Templates - have more than just a single set of default conversation settings for newly created chats
  • Custom rendering for tool inputs and outputs
  • SQL tool to let the Assistant interact with a database
  • DuckDB tool with functionality similar to https://github.com/cube2222/DuckGPT
  • Embedded conversational code editor
  • Inception-like nested conversations (the Assistant as a tool for the Assistant)

cuttlefish's People

Contributors

cube2222 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.