SkillExtractionNER is an open-source .NET 10 service that loads skill dictionaries, exposes REST endpoints for annotation/opportunity scoring skills in text. It is published under the MIT License so you can reuse or extend it in your own applications.
POST /annotatereturnsfullandngram_scoredmatching results for any text payload.POST /opportunitiesaggregates matched skills per document and ranks the five most relevant opportunities./openapiand/scalaralways publish the current spec, while/healthand/readyexpose liveness/readiness probes.- OpenTracing instrumentation is enabled (Jaeger by default) so distributed traces capture annotation activity.
- .NET 10 SDK.
- The
Data/directory of skill dictionaries (already in the repo and copied to output by the project file). - Optional: a Jaeger collector if you want to see OpenTracing spans.
- Copy environment variables from
.env.exampleor setSkillDataDirectory,JAEGER_*, etc., yourself. cd ImIKao.SkillNERand rundotnet build(the Data folder is copied to the build output automatically).- Launch the service with
dotnet run --urls="http://0.0.0.0:8080". - Hit the endpoints at
http://localhost:8080/annotate,/opportunities,/health,/ready,/openapi, or/scalar.
| Endpoint | Description |
|---|---|
POST /annotate |
Returns full/ngram_scored matches for the supplied text body. |
POST /opportunities |
Ranks top 5 matched skills per document. |
GET /openapi |
Raw OpenAPI JSON payload. |
GET /scalar |
Scalar UI for the current OpenAPI spec. |
/health & /ready |
Health and readiness gates. |
- Set
SkillDataDirectory(default:Data/) to point to the JSON dictionaries at runtime. - The tracer configuration respects
JAEGER_*environment variables so you can swap collectors without code changes. [MapOpenApi](https://learn.microsoft.com/en-us/aspnet/core/?view=aspnetcore-8.0)+ Scalar keep documentation accessible even when the service is hosted behind proxies.
docker build -t skillner .
docker run -p 8080:8080 skillner
The Dockerfile copies Data/ so the dictionaries travel with the image and exposes the OpenAPI/Scalar endpoints.
From the solution root run dotnet test ImIKao.SkillNER.sln. CI runners should already support the required .NET tooling and IPC primitives.
Contributions are welcome. Fork the repo, add or fix features, and open a pull request. Please keep the Data/ files in sync with the project settings and run dotnet test before submitting changes.
This project is licensed under the MIT License — see the accompanying LICENSE file for the full text.