mirror of
https://github.com/discourse/discourse-ai.git
synced 2025-07-24 23:13:27 +00:00
Given latest GPT 3.5 16k which is both better steered and supports functions we can now support rich bot integration. Clunky system message based steering is removed and instead we use the function framework provided by Open AI
38 lines
1.2 KiB
Ruby
38 lines
1.2 KiB
Ruby
#frozen_string_literal: true
|
|
|
|
require_relative "../../../../support/openai_completions_inference_stubs"
|
|
|
|
RSpec.describe DiscourseAi::AiBot::Commands::Command do
|
|
fab!(:bot_user) { User.find(DiscourseAi::AiBot::EntryPoint::GPT3_5_TURBO_ID) }
|
|
let(:command) { DiscourseAi::AiBot::Commands::Command.new(bot_user, nil) }
|
|
|
|
describe "#format_results" do
|
|
it "can generate efficient tables of data" do
|
|
rows = [1, 2, 3, 4, 5]
|
|
column_names = %w[first second third]
|
|
|
|
formatted =
|
|
command.format_results(rows, column_names) { |row| ["row ¦ 1", row + 1, "a|b,\nc"] }
|
|
|
|
expect(formatted[:column_names].length).to eq(3)
|
|
expect(formatted[:rows].length).to eq(5)
|
|
expect(formatted.to_s).to include("a|b,\\nc")
|
|
end
|
|
|
|
it "can also generate results by returning hash per row" do
|
|
rows = [1, 2, 3, 4, 5]
|
|
column_names = %w[first second third]
|
|
|
|
formatted =
|
|
command.format_results(rows, column_names) { |row| ["row ¦ 1", row + 1, "a|b,\nc"] }
|
|
|
|
formatted2 =
|
|
command.format_results(rows) do |row|
|
|
{ first: "row ¦ 1", second: row + 1, third: "a|b,\nc" }
|
|
end
|
|
|
|
expect(formatted).to eq(formatted2)
|
|
end
|
|
end
|
|
end
|