Giter VIP home page Giter VIP logo

talk-web's Introduction

talk-web

Talk-web, the web-based interface for proxoar/talk, is a single-page application designed to emulate the user experience of a native app.

For more info, refer to proxoar/talk

talk-web's People

Contributors

dependabot[bot] avatar proxfly avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

talk-web's Issues

Setting page for global and each session

A user-configurable page should be available to adjust the following settings:

  1. The number of historical messages to be sent to the LLM.
  2. The preferred LLM model to be used.
  3. The speed and accent of the voice used for text-to-speech conversion.
  4. The option to switch between light and dark modes.
  5. Additional configurable options (if any).

A mechanism for audio playback

A mechanism for audio playback is necessary:

  1. Automatic playback of newly received audio should occur. If audio is already playing, the newly received audio should be queued.
  2. Pressing the ESC key should stop and clear the queue, as well as halt the currently playing audio.
  3. When the recorder is activated, the playing audio should pause, and it should resume playing once the recorder is deactivated.

Rewrite listbox.

The current implementation of the listbox via Downshift has its limitations. It may be beneficial to consider a rework using Floating UI.

  • With absolute positioning, some elements of the list are concealed due to overflow.
  • When the position is set to fixed, the list dramatically shifts away from the button.

This guy has precisely encountered the same predicament I've endured: floating-ui/floating-ui#1709

image

Add a button to revoke what you talk

It is very practical to add a button which enables users to revoke their voice.
For example, after I click the 'Spacebar' to speak, a submit button and a cancel button are showed.
Users can use the cancel button to revoke.

The message lacks a timeout feature.

The message (text or audio) lacks a timeout feature. Here is a proposed implementation for the timeout mechanism:

  1. Each message is expected to arrive within 15 seconds, and a consecutive message should arrive within 15 seconds after the previous message has been fully received.

  2. Any message that has not arrived within 1 minute, it will be marked as a timeout.

Clear message list

A means to clear the message list should be available before the session list is prepared, be it in the form of a button or an alternative method.

Butterfly icons

Describe the solution you'd like
It would be preferable to include butterfly icons at the bottom corner of a message along with a count. This way, users can easily identify what messages and how many messages are attached without having to scroll up.

Additional context
Version: 1.2.2
image
image

Introduce a framework

Given my proficiency in frontend development, it seems appropriate now to utilise a framework to manage aspects such as routing, authentication, and multi-language support.

Performance diminishes with excessive audio in message history

I attempted to utilise https://github.com/bvaughn/react-window, but encountered a few challenges:

  • List items may intersect
  • The message list's scrolling is not smooth enough when audio is being retrieved from IndexedDB
  • Frequent DOM refreshing as assistant types

Potential solutions to explore:

  • Use an LRU cache for audio blobs
  • Limit audio rendering to the most recent N messages. Avoid rendering older audios unless specifically clicked by the user.

Max Token error from LLM sever

ChatGPT returned an error.

got error from LLM sever: error, status code: 400, 
message: This model's maximum context length is 4097 tokens. 
However, you requested 4315 tokens (315 in the messages, 4000 in the completion). 
Please reduce the length of the messages or completion.

By subtracting the number of tokens in the request from MaxToken, the user's mental load can be reduced

  • How to calculate the number of tokens before sending the message?
  • What about languages other than English?
image

Session list

Currently, there is only one session available. Users would benefit from having a session list to manage various topics.

Implementing this feature without a suitable framework like Next.js might pose challenges. Since I lack familiarity with this subject, it would be ideal for someone knowledgeable to handle it.

The ability to favourite a chat

This can be accomplished by introducing a divider within the list, distinguishing between favourite conversations and the remaining chats.

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.