Created
November 30, 2024 17:04
-
-
Save saiqulhaq/3c88a230650e5a1baf3ff18e8a2b8997 to your computer and use it in GitHub Desktop.
opencommit commit messages
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
refactor(conversations): improve prompt handling and display | |
feat(conversations_helper): add pretty_print_prompt method to render prompts with better readability | |
fix(slack/thread): modify messages_as_prompt to wrap messages in XML structure | |
style(conversations): update view to use pretty_print_prompt and improve response display |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
diff --git a/app/controllers/conversations_controller.rb b/app/controllers/conversations_controller.rb | |
index 16a89b2..73c3a67 100644 | |
--- a/app/controllers/conversations_controller.rb | |
+++ b/app/controllers/conversations_controller.rb | |
@@ -112,7 +112,7 @@ class ConversationsController < ApplicationController | |
[ | |
{ role: 'user', content: instruction }, | |
- { role: 'user', content: thread.messages_as_prompt.join("\n") } | |
+ { role: 'user', content: thread.messages_as_prompt } | |
] | |
else | |
raise NotImplementedError | |
diff --git a/app/helpers/conversations_helper.rb b/app/helpers/conversations_helper.rb | |
index fe30c45..24a5e4b 100644 | |
--- a/app/helpers/conversations_helper.rb | |
+++ b/app/helpers/conversations_helper.rb | |
@@ -1,2 +1,30 @@ | |
module ConversationsHelper | |
+ def pretty_print_prompt(prompt) | |
+ messages = JSON.parse(prompt) | |
+ | |
+ content_tag :table do | |
+ title = content_tag :tr do | |
+ content_tag(:th, 'Role') + content_tag(:th, 'Content') | |
+ end | |
+ body = messages.map do |message| | |
+ content_tag :tr do | |
+ content = message['content'] | |
+ if content.include?('<message>') | |
+ parsed_xml = Nokogiri::XML(content) | |
+ content = content_tag :table do | |
+ parsed_xml.css('message').map do |msg| | |
+ user = msg.css('user').text | |
+ text = msg.css('text').text | |
+ content_tag :tr do | |
+ content_tag(:td, user) + content_tag(:td, text) | |
+ end | |
+ end.join.html_safe | |
+ end | |
+ end | |
+ content_tag(:td, message['role']) + content_tag(:td, content) | |
+ end | |
+ end.join.html_safe | |
+ title + body | |
+ end | |
+ end | |
end | |
diff --git a/app/models/slack/thread.rb b/app/models/slack/thread.rb | |
index 7901f23..59cb502 100644 | |
--- a/app/models/slack/thread.rb | |
+++ b/app/models/slack/thread.rb | |
@@ -22,13 +22,14 @@ class Slack::Thread < Slack::BaseRecord | |
has_one :parent_message, -> { where(parent_message_id: nil) }, class_name: 'Slack::Message' | |
def messages_as_prompt | |
- messages.includes(:user).map do |message| | |
+ messages = self.messages.includes(:user).map do |message| | |
text = message.text.gsub(/<@(\w+)>/) do |match| | |
user = Slack::User.find_by(slack_id: $1) | |
user ? "@#{user.name}" : match | |
end | |
"<message><user>@#{message.user&.name}</user><text>#{text}</text></message>" | |
end | |
+ "<messages>#{messages.join}</messages>" | |
end | |
def save_messages(messages) | |
diff --git a/app/views/conversations/_conversation.html.erb b/app/views/conversations/_conversation.html.erb | |
index e4fd754..5671eea 100644 | |
--- a/app/views/conversations/_conversation.html.erb | |
+++ b/app/views/conversations/_conversation.html.erb | |
@@ -8,13 +8,15 @@ | |
<strong>Request:</strong> | |
</p> | |
<pre> | |
- <%= raw JSON.pretty_generate JSON.parse(conversation.request) %> | |
+ <%= pretty_print_prompt(conversation.request) %> | |
</pre> | |
<p> | |
<strong>Response:</strong> | |
- <%= conversation.response %> | |
</p> | |
+ <pre> | |
+ <%= conversation.response %> | |
+ </pre> | |
<p> | |
<strong>Llm model:</strong> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
feat(conversations): improve prompt formatting by introducing a `pretty_print_prompt` helper method to display messages in a table format |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
fix(app/controllers/conversations_controller.rb): change messages_as_prompt method to use user names instead of @user | |
feat(app/models/slack/thread.rb): add support for saving messages as a JSON string in the conversation response |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment