lllyasviel / lllyasviel/stable-diffusion-webui-forge

Add .well-known/serviceinfo endpoint

Open
#2,257 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Python
Stars
13k
Forks
1.7k
PR merge metrics
No merged PRs in 30d

Description

The developers of the [AI Horde](https://aihorde.net), [koboldcpp](https://github.com/LostRuins/koboldcpp) and [aphrodite](https://github.com/PygmalionAI/aphrodite-engine) just agreed for a standard which would allow inference integrators to our APIs to quickly retrieve the information about the API they are working with.

We arranged that the information should live in a [.well-known ](https://en.wikipedia.org/wiki/Well-known_URI) URI and we chose `serviceinfo` as the endpoint to signify it's use in a service api.

We came up with [the following standard](https://github.com/Haidra-Org/AI-Horde/wiki/serviceinfo) (you can see a live example [here](https://aihorde.net/.well-known/serviceinfo))

```
{
"api": {
"aihorde": {
"rel_url": "/api/v2",
"documentation": "https://aihorde.net/api",
"name": "AI Horde API",
"version": "2.5"
}
},
"software": {
"homepage": "https://aihorde.net",
"logo": "https://aihorde.net/assets/img/logo.png",
"name": "AI Horde",
"repository": "https://github.com/Haidra-Org/AI-Horde",
"version": "4.44.0"
},
"version": "0.2"
}
```

The fields should be self-explanatory, but basically `api` holds info about each api is served (for example aphrodite serves both Open AI and KoboldAI APIs) whereas the `software` holds information about the software itself. The `version` on the root is the version of the `.well-known/serviceinfo` itself.

We think it would benefit everyone if Forge onboard the same endpoint and we would welcome improvement and extensions on the `serviceinfo` standard we came up with.

Relevant PRs

Aphrodite: https://github.com/PygmalionAI/aphrodite-engine/pull/807
AI Horde: https://github.com/Haidra-Org/AI-Horde/pull/466

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reviewing the linked serviceinfo standard and live example, then locate the API routing entry point for the .well-known URI. Compare the response with the documented schema and the referenced AI Horde and Aphrodite PRs. Done means the serviceinfo endpoint is available and returns the agreed API and software metadata.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
api
Issue type
Feature
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.