Skip to content

Commit

Permalink
doc: updated README
Browse files Browse the repository at this point in the history
  • Loading branch information
noodnik2 committed Feb 13, 2024
1 parent c50d70b commit 313d480
Showing 1 changed file with 37 additions and 8 deletions.
45 changes: 37 additions & 8 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,27 +1,41 @@
# `gochat`

Simple AI "chat" shell.
## Description

## Model Support
A simple AI "chat" shell (similar to `ChatGPT`) which can be used to "converse" with
one of the supported large language models, and optionally record your "chat transcript"
in a local file, making it easy to later reference your conversations with these models.

This app is designed to support access to multiple underlying chat
models, including:
## _Currently Available!_

### Model Support

This app is designed to support access to multiple underlying chat models,
including:

- [OpenAI](https://platform.openai.com/docs) using [Go OpenAI SDK](https://github.com/sashabaranov/go-openai)
- [Gemini](https://deepmind.google/technologies/gemini) using [Google Gemini SDK](https://github.com/google/generative-ai-go)

## Configuration
If you're not yet signed up to access either of these popular online language models,
_what are you waiting for?_ Clear instructions for obtaining your SDK Key needed to
access each model on its "SDK" page using the link(s) above!

### Configuration

Copy the file `config/config.yaml` into `config/config-local.yaml` in order to create
your own, private configuration.

In your private configuration (i.e., `config-local.yaml`), select the model you wish to use,
and enter your credentials for accessing that model before running.

If you wish to create transcripts of your chat sessions, set the `Scriber` configuration value
to `Template`, and - if needed - customize its formatting in the `TemplateScribe` sections.
If you wish to create transcripts of your chat sessions, set the `Scriber` adapter value to
`Template`, and - if needed - customize its formatting in the `TemplateScribe` sections,
taking guidance from the [`go` Templating](https://pkg.go.dev/text/template) language documentation.

### Running

## Running
You will need to have `go` installed in order to run `gochat` in your terminal. If you
don't already have this, see [here](https://go.dev/doc/install) to find out how.

In a `go` (version `1.21` or later) environment, run the app using the `Makefile` target, e.g.:

Expand All @@ -39,3 +53,18 @@ Bye bye!
$
```

## _Future Roadmap_

Several planned enhancements for `gochat` in its Roadmap include:

### Retrieval Augmented Generation (RAG)
- Add support for "chats" with supplied context, using an "embedding" service such as
[ChromaDB](https://www.trychroma.com/), [Pinecone](https://www.pinecone.io/solutions/rag/)
or [Weaviate](https://weaviate.io/developers/weaviate/starter-guides/generative))
### Fully local LLMs
- Add support for "chats" against confidential information, and/or without the need
for internet connection, such as possible with [ollama](https://ollama.com/).

### Want to Contribute? Have Ideas?
- _Please get in touch!_
- _Please submit a PR!_

0 comments on commit 313d480

Please sign in to comment.