Go to file
Lucio Lelii ddc792ff28 Let a provider declare it needs an endpoint, and accept one as a credential
Two additions to LLMProvider, both additive defaults so no existing
provider or test stub changes behaviour.

requiresEndpoint() names the one thing every provider until now has had
in common without anyone needing to say so: a base URL it already knows,
whether server-configured or a constant of the service it talks to. A
provider whose endpoint is not known until a credential names it -
coming next - is the first that needs to say otherwise.

ProviderCredential carries that endpoint alongside the secret value a
provider has always received. The three new generate/generateJson/chat
overloads that take one default to unwrapping .value() and calling the
String-authorization overload above them, so a provider that only
overrides the old ones - which today is every one of them, including
every anonymous test stub across the suite - keeps behaving exactly as it
did. Only a provider that overrides the new overloads directly gets to
read .endpoint() at all.

Adding an abstract method instead would have broken every one of those
stubs, since none of them implement anything beyond the three methods the
interface already requires.

One ambiguity fell out of this at the call site InternalOllamaLLMProvider
used to have: chat(model, messages, null, null) no longer resolves
unambiguously, since a bare null now fits both the String and the
ProviderCredential overload equally. Not visible in this diff - that call
site was rewritten away in the Ollama extraction - but worth naming since
it is the shape of thing this kind of overload addition can trigger
elsewhere too.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-17 12:27:19 +02:00
.mvn/wrapper upgrade to springboot 4 2026-05-05 19:22:53 +02:00
src Let a provider declare it needs an endpoint, and accept one as a credential 2026-09-17 12:27:19 +02:00
.gitattributes first commit 2025-03-27 11:38:06 +01:00
.gitignore Improve assistant model routing and diagnostics 2026-05-20 12:27:09 +02:00
CITATION.cff Release under the AGPL with an attribution term 2026-09-16 12:10:26 +02:00
Dockerfile Harden Maven downloads in Docker build 2026-09-10 11:34:39 +02:00
LICENSE Release under the AGPL with an attribution term 2026-09-16 12:10:26 +02:00
LICENSE-ADDENDUM Release under the AGPL with an attribution term 2026-09-16 12:10:26 +02:00
NOTICE Release under the AGPL with an attribution term 2026-09-16 12:10:26 +02:00
README.md Release under the AGPL with an attribution term 2026-09-16 12:10:26 +02:00
mvnw first commit 2025-03-27 11:38:06 +01:00
mvnw.cmd first commit 2025-03-27 11:38:06 +01:00
ollama-preloaded-docker image for test with ollama added 2025-09-29 17:00:57 +02:00
pom.xml Release under the AGPL with an attribution term 2026-09-16 12:10:26 +02:00
run_service.sh Replace Flyway schema setup with JPA mappings 2026-09-09 12:20:36 +02:00

README.md

RUN LOCAL SERVICE

./run_service.sh

BUILD DOCKER IMAGE

docker buildx build –platform linux/amd64,linux/arm64 -t luciolelii/humainflow:latest . –push

HOST

lelii@build-host.internal

License

Copyright (C) 2025-2026 Lucio Lelii — ISTI-CNR.

HumAIn Flow is released under the GNU Affero General Public License v3.0 or later (LICENSE), with an additional attribution term under section 7(b) of that license (LICENSE-ADDENDUM).

In practice this means:

  • you may use, study, modify and redistribute it freely;

  • if you run a modified version as a network service, you must offer its source to the users of that service;

  • any work based on it must keep the attribution below, both in the source and where the interface shows its legal notices:

    Based on HumAIn Flow, originally developed by Lucio Lelii (ISTI-CNR) — https://github.com/luciolelii/humainflow-service

If you use HumAIn Flow in academic work, please cite it — see CITATION.cff.