Skip to content

Isolate local summary inference per article - #240

Merged
djdefi merged 1 commit into
mainfrom
feat/per-item-summary-inference
Aug 8, 2026
Merged

djdefi merged 1 commit into
mainfrom
feat/per-item-summary-inference

Conversation

@djdefi

@djdefi djdefi commented Aug 8, 2026

Copy link
Copy Markdown
Owner

Each article now receives its own local model request, preventing the 2.6B model from borrowing names or context from neighboring items. Responses remain JSON-validated and are assembled deterministically. The cache pipeline version is bumped. All 80 tests and 273 assertions pass.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

Copilot-Session: 17590816-0a13-4b19-990e-8aae72213acc
Comment thread render.rb
temperature: 0.0,
max_tokens: 120,
top_p: 0.8,
response_format: { "type" => "json_object" }
Comment thread render.rb
temperature: 0.0,
max_tokens: 120,
top_p: 0.8,
response_format: { "type" => "json_object" }
Comment thread render.rb
end
if facts.empty?
{ facts: [], error: "Summary generation failed - no grounded facts returned." }
{ facts: [], error: errors.first || "Summary generation failed - no grounded facts returned." }
Comment thread test/render_test.rb
saved_endpoint ? ENV['AI_API_ENDPOINT'] = saved_endpoint : ENV.delete('AI_API_ENDPOINT')
end

def test_generate_grounded_facts_retries_when_server_rejects_response_format
Comment thread test/render_test.rb
saved_endpoint ? ENV['AI_API_ENDPOINT'] = saved_endpoint : ENV.delete('AI_API_ENDPOINT')
end

def test_generate_grounded_facts_retries_when_server_rejects_response_format
Comment thread test/render_test.rb
end
responses = [
response_class.new('unsupported response_format', 400),
response_class.new({ choices: [{ message: { content: '{"facts":[{"item":1,"sentence":"Council approved the plan."}]}' } }] }.to_json, 200)
Comment thread test/render_test.rb
saved_endpoint ? ENV['AI_API_ENDPOINT'] = saved_endpoint : ENV.delete('AI_API_ENDPOINT')
end

def test_generate_grounded_facts_isolates_each_item_request
Comment thread test/render_test.rb
saved_endpoint ? ENV['AI_API_ENDPOINT'] = saved_endpoint : ENV.delete('AI_API_ENDPOINT')
end

def test_generate_grounded_facts_isolates_each_item_request
Comment thread test/render_test.rb
end
end
responses = [
response_class.new({ choices: [{ message: { content: '{"facts":[{"item":1,"sentence":"Water service continues."}]}' } }] }.to_json, 200),
Comment thread test/render_test.rb
end
responses = [
response_class.new({ choices: [{ message: { content: '{"facts":[{"item":1,"sentence":"Water service continues."}]}' } }] }.to_json, 200),
response_class.new({ choices: [{ message: { content: '{"facts":[{"item":1,"sentence":"Candidate filing closes November 3."}]}' } }] }.to_json, 200)
@djdefi
djdefi merged commit 315bcf3 into main Aug 8, 2026
5 checks passed
@djdefi
djdefi deleted the feat/per-item-summary-inference branch August 8, 2026 23:41
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants