mirror of
https://github.com/discourse/discourse-ai.git
synced 2025-02-16 16:34:45 +00:00
This reverts commit ef7d4cc5090e54491ab00d5bdd0ef3ad85c499de.
This commit is contained in:
parent
ef7d4cc509
commit
031c2a6b46
@ -71,7 +71,7 @@ module DiscourseAi
|
|||||||
.string
|
.string
|
||||||
.then { JSON.parse(_1) }
|
.then { JSON.parse(_1) }
|
||||||
.dig("bytes")
|
.dig("bytes")
|
||||||
.then { Base64.decode64(_1.to_s) }
|
.then { Base64.decode64(_1) }
|
||||||
rescue JSON::ParserError,
|
rescue JSON::ParserError,
|
||||||
Aws::EventStream::Errors::MessageChecksumError,
|
Aws::EventStream::Errors::MessageChecksumError,
|
||||||
Aws::EventStream::Errors::PreludeChecksumError => e
|
Aws::EventStream::Errors::PreludeChecksumError => e
|
||||||
|
@ -78,24 +78,26 @@ RSpec.describe DiscourseAi::Completions::Endpoints::AwsBedrock do
|
|||||||
def stream_line(delta, finish_reason: nil)
|
def stream_line(delta, finish_reason: nil)
|
||||||
encoder = Aws::EventStream::Encoder.new
|
encoder = Aws::EventStream::Encoder.new
|
||||||
|
|
||||||
bytes =
|
message =
|
||||||
if delta.nil?
|
Aws::EventStream::Message.new(
|
||||||
nil
|
payload:
|
||||||
else
|
StringIO.new(
|
||||||
Base64.encode64(
|
{
|
||||||
{
|
bytes:
|
||||||
completion: delta,
|
Base64.encode64(
|
||||||
stop: finish_reason ? "\n\nHuman:" : nil,
|
{
|
||||||
stop_reason: finish_reason,
|
completion: delta,
|
||||||
truncated: false,
|
stop: finish_reason ? "\n\nHuman:" : nil,
|
||||||
log_id: "12b029451c6d18094d868bc04ce83f63",
|
stop_reason: finish_reason,
|
||||||
model: "claude-2",
|
truncated: false,
|
||||||
exception: nil,
|
log_id: "12b029451c6d18094d868bc04ce83f63",
|
||||||
}.to_json,
|
model: "claude-2",
|
||||||
)
|
exception: nil,
|
||||||
end
|
}.to_json,
|
||||||
|
),
|
||||||
message = Aws::EventStream::Message.new(payload: StringIO.new({ bytes: bytes }.to_json))
|
}.to_json,
|
||||||
|
),
|
||||||
|
)
|
||||||
|
|
||||||
encoder.encode(message)
|
encoder.encode(message)
|
||||||
end
|
end
|
||||||
@ -120,17 +122,4 @@ RSpec.describe DiscourseAi::Completions::Endpoints::AwsBedrock do
|
|||||||
end
|
end
|
||||||
|
|
||||||
it_behaves_like "an endpoint that can communicate with a completion service"
|
it_behaves_like "an endpoint that can communicate with a completion service"
|
||||||
|
|
||||||
it "skips empty deltas" do
|
|
||||||
completion_deltas = [nil, "Mount", "ain", " ", "Tree ", "Frog"]
|
|
||||||
stub_streamed_response(prompt, completion_deltas)
|
|
||||||
completion_response = +""
|
|
||||||
|
|
||||||
model.perform_completion!(prompt, Fabricate(:user)) do |partial, cancel|
|
|
||||||
completion_response << partial
|
|
||||||
cancel.call if completion_response.split(" ").length == 2
|
|
||||||
end
|
|
||||||
|
|
||||||
expect(completion_response).to eq(completion_deltas[0...-1].join)
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
|
Loading…
x
Reference in New Issue
Block a user