Skip to content

fix(providers/ollama): align generate_with_usage with async interface#196

Merged
himanshu231204 merged 2 commits into
OpenAgentHQ:mainfrom
Sanjays2402:fix/ollama-async-usage
Jul 19, 2026
Merged

fix(providers/ollama): align generate_with_usage with async interface#196
himanshu231204 merged 2 commits into
OpenAgentHQ:mainfrom
Sanjays2402:fix/ollama-async-usage

Conversation

@Sanjays2402

Copy link
Copy Markdown
Contributor

Closes #194.

Pipeline._generate awaits generate_with_usage, but Ollama exposed that name as a synchronous method while keeping its coroutine under the Ollama-specific generate_with_usage_async name. The resulting TypeError was swallowed by the pipeline's broad exception handler, leaving every Ollama generation with an empty answer.

This aligns Ollama with the async interface used by the other providers, moves the blocking helper to generate_with_usage_sync, and retains the previous async name as a compatibility alias. The regression test drives the real pipeline path with Ollama's HTTP client mocked and proves a non-empty answer plus token usage are returned.

Verified locally with the Ollama provider tests, pipeline integration tests, and core engine tests: 40 passed. Ruff check and format are clean, and mypy reports no issues in the changed provider.

Sanjays2402 and others added 2 commits July 18, 2026 22:34
…other provider (fixes OpenAgentHQ#194)

The evaluation pipeline awaits self._llm.generate_with_usage(...). On every
provider except Ollama that method is an async def, so the await works. On
Ollama it was a plain synchronous def (the coroutine lived under the
differently named generate_with_usage_async). Awaiting the synchronous return
raised a TypeError that Pipeline._generate's broad except Exception swallowed,
so the pipeline returned an empty answer for every Ollama generation with no
error surfaced.

Rename Ollama's coroutine to generate_with_usage (canonical, matches
openai/groq/gemini/openrouter/mock) and move the blocking helper to
generate_with_usage_sync. Keep an async generate_with_usage_async alias for
backward compatibility with existing callers.

Add an integration regression test that drives Pipeline._generate with a real
Ollama provider (HTTP client mocked) and asserts a non-empty answer is
returned; it fails before this change and passes after. Update the Ollama unit
tests to call the renamed sync helper.
@himanshu231204
himanshu231204 merged commit 678d0f2 into OpenAgentHQ:main Jul 19, 2026
9 checks passed
@github-actions

Copy link
Copy Markdown

🎉 Congratulations @Sanjays2402!

Your pull request has been successfully merged into main. 🚀

Thank you for contributing to OpenAgentHQ and helping improve the project.

We truly appreciate your contribution and hope to see you back with more amazing PRs!

Happy Open Sourcing! ❤️

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.

pipeline + Ollama: await on the provider's sync generate_with_usage is swallowed — every Ollama generation silently returns an empty answer

2 participants