Go to file
Lucio Lelii a222c8a6d7 Add OpenAI, OpenRouter and OpenAI-compatible providers
OpenAIProtocolProvider is the shared request/response shape - flat
sampling parameters, native system/user/assistant roles, no top_k (OpenAI
has no equivalent, so it is excluded from supportedParameters rather than
silently ignored) - built on the transport base added earlier. Three
concrete providers sit on it:

  - OpenAIProvider and OpenRouterProvider have a constant endpoint, the
    way any client of either service does; requiresEndpoint() stays false
    and their baseUrl() ignores whatever the credential carries.
  - OpenAICompatibleProvider is the one whose endpoint the user supplies -
    a self-hosted vLLM, LM Studio, a company gateway - so
    requiresEndpoint() is true and baseUrl() reads the credential's
    endpoint, validated through OutboundEndpointGuard before every call.

Registering "OpenAI" as a real provider bean was checked against the
existing tests that used that exact name as a stand-in for an
*unregistered* provider (VaultCredentialGateTest, UserSecretControllerTest)
- none of them break, and the ones that specifically assert the
unregistered-name behaviour now exercise the real bean instead, which is
closer to what they were meant to prove.

The 4xx-carries-its-body improvement from the transport base applies here
from day one: with a free-typed model name, that body is often the only
thing that says whether the model does not exist, the key lacks access to
it, or the endpoint is wrong - OpenAI's own error responses say so
directly ("The model 'x' does not exist or you do not have access to it").

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-17 12:28:26 +02:00
.mvn/wrapper upgrade to springboot 4 2026-05-05 19:22:53 +02:00
src Add OpenAI, OpenRouter and OpenAI-compatible providers 2026-09-17 12:28:26 +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.