dify icon indicating copy to clipboard operation
dify copied to clipboard

Is it possible to add Regenerate the message button in Frontend to regenerate the message of AI

Open Greatz08 opened this issue 2 years ago • 3 comments

Self Checks

Description of the new feature / enhancement

i mean i have used chatgpt and foss frontend program bettergpt web interface and in those we can regenerate the response with simple button click so can you add that same feature in normal chat and bot chats of dify so that we can regenerate the message from ai side to get better response or i should say expected response :-)) will be very helpful for continuous better conversation Thankyou

Scenario when this would be used?

in bot chats and normal chat with ai.

Supporting information

No response

Greatz08 avatar Jan 13 '24 07:01 Greatz08

🤖

Hello @HakaishinShwet! 👋

I'm Dosu, a friendly bot here to assist with your issues and questions. While we're waiting for a human maintainer, I'll do my best to help you out. Let's dive into your query! 🚀

Thank you for your feature request. It is indeed possible to incorporate a feature in dify's chat and bot chats that allows for the regeneration of AI responses. This can be achieved by implementing a function that triggers the AI to generate a new response. This function can be called whenever the user requests a new response.

In the dify codebase, the handleSend function is responsible for sending a message to the AI and receiving a response. To regenerate a response, you could create a new function that calls handleSend with the same message again. This would cause the AI to generate a new response to the same message.

Here is a simple example of how you could implement this:

const regenerateResponse = async (message: string, files?: VisionFile[]) => {
  // Remove the last response from the chat list
  setChatList(chatList => chatList.slice(0, -1));

  // Send the message again to generate a new response
  await handleSend(message, files);
}

This function first removes the last response from the chat list, then sends the same message again to generate a new response. You could call this function whenever the user requests a new response.

Please note that this is a simplified example and the actual implementation may need to be more complex, depending on the specifics of your application. For example, you may need to handle cases where the last message in the chat list is not a response, or where the AI is currently generating a response.

You can find the handleSend function in the web/app/components/share/chatbot/index.tsx file.

As for the method of generating AI responses in the dify codebase, it is done by using models provided by OpenAI, such as GPT-3.5-Turbo and GPT-4. This is indicated in the YAML configuration file under the 'provider' and 'description' fields. The configuration also requires an API key from OpenAI, which can be entered in the 'credential_form_schemas' section. Other optional configurations include the organization ID and API base. You can find this in the api/core/model_runtime/model_providers/openai/openai.yaml file.

I hope this helps! If you have any other questions or need further clarification, feel free to ask.

Best regards, Dosu

Sources


This response is meant to be useful and save you time. It is not meant to be a precise solution, but rather a starting point for your own research.

Help me be more useful! Please leave a 👍 if this is helpful and 👎 if it is irrelevant.

If you want to continue the conversation, start your reply with @dosu-bot.

dosubot[bot] avatar Jan 13 '24 07:01 dosubot[bot]

Thanks! We are working on it.

VincePotato avatar Jan 16 '24 05:01 VincePotato

Close due to it's no longer active, if you have any questions, you can reopen it.

github-actions[bot] avatar Feb 01 '24 03:02 github-actions[bot]