Giter Site home page Giter Site logo

henrycunh / golem Goto Github PK

View Code? Open in Web Editor NEW
226.0 5.0 62.0 24.27 MB

✨ A beautiful UI for ChatGPT and other conversational models

Home Page: https://golem.chat

License: MIT License

Vue 52.92% CSS 2.36% TypeScript 44.38% Dockerfile 0.34%
chatbot chatgpt llm ui chat

golem's Introduction

Golem is an open-source conversational UI and alternative to ChatGPT

🚀 Key Features:

  • ✅ Access to GPT-3.5 / GPT-4 APIs
  • 🎨 Customizable UI
  • 🌑 Dark mode
  • 🗑️ Delete messages
  • ⭐️ Favorite messages and conversations
  • 🔎 Search messages
  • ⚙️ Custom settings for conversations

☁ Host on the Personal Cloud with Deta

  • 🔑 Your data and conversations only belong to you
  • 📦 Integrate easily with other apps, everything on the personal cloud is programmable
  • 💠 Cross device synchronisation
  • 🍻 Share chat history

🛠 Configuration

You can use environment variables to customize your instance.

Variable Description
GOLEM_PASSWORD Protects the instance with this password, which will be prompted at every usage.
OPENAI_API_KEY Enforces the usage of this API Key on the instance.

🐳 Running on Docker

You can run Golem on Docker with the following command:

docker run -p3000:3000 theajax/golem

🗺️ Roadmap:

  • 📄 External knowledge (documents, websites, etc.) support
  • 🤖 Additional AI language models support
  • 🌍 Multi-language support
  • 🔌 Plugins support

golem's People

Contributors

abranhe avatar apperside avatar ctholho avatar danielroe avatar gdassori avatar henrycunh avatar pomdtr avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

golem's Issues

Need to Integrate Firebase Login and SignUp with the app

I have tried integrating the login and signup functionality, which was successful. However, I encountered an issue with loading the Nuxt instance for middleware, resulting in users being logged out when they reload the page. Can you please add a feature in this repository?

SK-**********

This was fixed before Name change, but now anyone who uses this can see my key lol let me know how to make it like before

Key: SK-**********tWer

Feature Request: Temperature selection

Add the temperature selection.

Ideally, that should be a chat-bounded param, as any chat may require its own temperature.
Also changing temperature over time should not affect already-started chats.
Thie level of control is something I haven't seen yet in any other client!

Feature requests: Max tokens into settings

Hello! Thank you for the good work, I really love geppeto!

Could you please add the token limits into the settings, along with the API key, or with the model selection?
Thank you!

Feature request: Replicate ChatGPT UI\UX

Geppeto glitches a bit when multiple inputs are sent concurrently during a conversation.
ChatGPT locks the input while sending a response back to the client, and the response (using the streaming API as geppeto does if I'm not wrong) can be interrupted.

I suggest replicating this behavior in the geppeto chatbox, to avoid the glitching caused by multiple concurrent inputs.

Enable indexing web pages

what

  • The user should be able to inform a webpage and extract knowledge from it.
  • This knowledge should be stored in an easily identifiable base.
  • This knowledge could be a throwaway bit of information, used only in the conversation, without ever persisting it other than locally.

Note
For example, the user could provide the link to news article, and use the knowledge only in an specific chat, or save it in a base called Articles

  • Enable fetching data from an url and using it
  • Enable crawling multiple URLs into a single knowledge piece

Layout Change issue

Whenever I change the layout like using logout button in settings, it shows blank screen instead of showing password screen.

local storage of chat history

Hello, thanks for the great repo!

When I use npm run dev to run the app locally, I believe each conversation is stored to some place because I can see my conversation history with chatgpt.

I am quite new to vue.js. I could not find the relevant code or files on my own. I'd really appreciate someone to tell me where the list of conversations is stored. Thanks a lot!

Can't see response errors

Golem isn't showing the error that OpenAI returns from v1/chat/completions. While trying to use, not happens on the screen.
Upon examining the network response, I discovered the cause of the problem:

{
    "error": {
        "message": "You exceeded your current quota, please check your plan and billing details.",
        "type": "insufficient_quota",
        "param": null,
        "code": null
    }
}

Replying this error message to the user would be really useful.

Bug: regression on the current master

image

[nuxt] [request error] [unhandled] [500] Cannot set properties of undefined (setting 'value')
  at ./chunks/app/server.mjs:772:18  
  at fn (./chunks/app/server.mjs:147:27)  
  at Object.callAsync (./node_modules/unctx/dist/index.mjs:49:19)  
  at callWithNuxt (./chunks/app/server.mjs:149:23)  
  at applyPlugin (./chunks/app/server.mjs:118:39)  
  at applyPlugins (./chunks/app/server.mjs:127:11)  
  at async createNuxtAppServer (./chunks/app/server.mjs:1046:7)  
  at async Object.renderToString (./node_modules/vue-bundle-renderer/dist/runtime.mjs:172:19)  
  at async ./chunks/handlers/renderer.mjs:384:21  
  at async ./chunks/handlers/renderer.mjs:26:22

ENV

can i use OPENAI_API_KEY in env as key?

Bug Report: No response on tokens overflow

When setting the max token to N, if prompt+N > 4001 (model limit), there is an error while communicating w/ OpenAI, and the chatbox doesn't notify anything.

How to reproduce:
Set the token limit to 4000 and start a new chat with any prompt.

Suggestion:
Use tiktoken (https://www.npmjs.com/package/@dqbd/tiktoken) to count the input tokens and determine a proper max_token value that should be model_max_value - input_message_tokens_count

Define openai org

I need to be able to define my openai organization along with the key.

[Feature Request] Fork conversation

Hey, this is an awesome project.

Can I make a feature request. I feel that I often want to fork a conversation. .... or try out different things. Something like a ... "fork chat after this message" - button.

E.g. the button could be put here.
Screenshot 2023-05-11 at 15 33 07

Forking would simply copy the conversation up to that point.
Would you accept a PR if I made one?

view this

  1. best interface for all devices especially for Mobile which I've noticed isn't perfectly done on a bigger screen

  1. Insert an .env file to store the key without putting it in the settings

  1. this error usually appears

"Cannot find module '/var/task/node_modules/dexie/dist/dexie.min.js' imported from /var/task/chunks/app/_nuxt/model-d4af80c0.mjs" (in the settings)


  1. Improve the UI in some parts (as you can see there is an empty part and then above everything is ruined
    Replace the white scroll with another layout)

Screenshot 2023-03-25 204440


  1. For the history:
    Insert a SQL database to store chats
    Each chat has a stored UUID so the person never loses anything as history and it's convenient via SQL for me

  1. Improve markdown it's not all live sometimes the type crashes

Feature request: export conversation to JSON/YAML

Hello, thank you for this promising UI for openai's GPT :)

Could you, please, add a feature to export the conversation into file? Would you like to add such a feature?

If you do but don't have vacant time, please, let me know, I will try to submit it as PR soon (I'm not a JS developer, thus I'm struggling even with such an easy feature :) )

SK-**********

can we hide the key somehow or make it with ***********

Feature request: Stick the model selection to a specific conversation

As far as I can understand in geppeto a model setting is global: when it is changed this setting affects also the previous conversations started with other models.
It would be nice to have the same behavior as ChatGPT, in which the model selection is bounded to a specific conversation.

Feature Request: Custom prompts persistence

Hello, another feature request for geppeto :-)

What about adding a "custom prompt" menu to save and recall initial prompts?
Also, some examples can be imported from "awesome prompts" repositories, or other collections.

Thank you!

Failed to send message: "0 is less than the minimum 1 - max_tokens"

Hello!

I have deployed golem with Vercel. I cannot receive any response from the OpenAI API due to this error:

error Error sending message 
Object { error: {…} }
 Error: Failed to send message
    NuxtJS 67
Caused by: Object { … }
entry.cbe35941.js:24:84

Where the Object is:

{
  "error": {
    "message": "0 is less than the minimum of 1 - 'max_tokens'",
    "type": "invalid_request_error",
    "param": null,
    "code": null
  }
}

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.