6 Commits
Author SHA1 Message Date
SuspiciousActivity 3aeaf3eaf0 1.0.4 2026-09-18 19:52:56 +02:00
SuspiciousActivity 5dbfba9a84 Debian update, big model, 3 predictions 2026-09-18 19:52:18 +02:00
Mario Zechner c99bfc0a37 1.0.3 2024-12-02 17:01:20 +01:00
Mario Zechner c6b323a86d 1.0.2 2024-12-02 17:00:58 +01:00
Mario Zechner eadde42761 Don't use buildkit 2024-12-02 17:00:42 +01:00
Mario Zechner 420adfc584 Multi-arch image 2024-12-02 16:55:06 +01:00
5 changed files with 66 additions and 23 deletions

No files matched your search

+4 -4
View File
@@ -1,4 +1,4 @@
FROM debian:bullseye-slim AS builder
FROM debian:bookworm-slim AS builder
RUN apt-get update && apt-get install -y \
build-essential \
@@ -14,7 +14,7 @@ RUN mkdir build-docker \
&& cmake -DCMAKE_BUILD_TYPE=Release .. \
&& make -j$(nproc)
FROM debian:bullseye-slim
FROM debian:bookworm-slim
RUN apt-get update && apt-get install -y \
libstdc++6 \
@@ -23,6 +23,6 @@ RUN apt-get update && apt-get install -y \
WORKDIR /app
COPY --from=builder /app/build-docker/fasttext_lid_server .
COPY lid.176.ftz .
RUN curl --remote-name https://dl.fbaipublicfiles.com/fasttext/supervised-models/lid.176.bin
CMD ["sh", "-c", "./fasttext_lid_server ${MODEL_FILE:-lid.176.ftz} ${PORT:-8080}"]
CMD ["sh", "-c", "./fasttext_lid_server ${MODEL_FILE:-lid.176.bin} ${PORT:-8080}"]
+22 -8
View File
@@ -1,3 +1,7 @@
## This is a fork
Forked from [badlogic/fasttext-lid-server](https://github.com/badlogic/fasttext-lid-server/), this repository uses a newer debian version (bookworm), uses the [bigger model](https://fasttext.cc/docs/en/language-identification) (126MB) and gives you the top 3 results instead of only 1.
# FastText Language ID Server
HTTP server that provides language identification using FastText models.
@@ -6,7 +10,7 @@ HTTP server that provides language identification using FastText models.
```bash
# Pull and run
docker run -p 8080:8080 mariozechner/fasttext-lid-server
docker run -p 8080:8080 suspiciousactivity/fasttext-lid-server
# Test
curl "http://localhost:8080/detect?text=Hello%20world"
@@ -18,10 +22,20 @@ curl "http://localhost:8080/detect?text=Hello%20world"
- **Parameter**: `text` (required)
- **Response**: JSON with language code and probability
```json
{
"language": "en",
"probability": 0.987
}
[
{
"language": "en",
"probability": 0.987
},
{
"language": "de",
"probability": 0.234
},
{
"language": "nl",
"probability": 0.123
}
]
```
- **Errors**:
- 400: Missing text parameter
@@ -32,14 +46,14 @@ curl "http://localhost:8080/detect?text=Hello%20world"
### Using docker run
```bash
# Default settings
docker run -p 8080:8080 mariozechner/fasttext-lid-server
docker run -p 8080:8080 suspiciousactivity/fasttext-lid-server
# Custom settings
docker run -p 9000:9000 \
-e PORT=9000 \
-e MODEL_FILE=/models/custom.ftz \
-v $(pwd)/models:/models \
mariozechner/fasttext-lid-server
suspiciousactivity/fasttext-lid-server
```
### Using docker compose
@@ -48,7 +62,7 @@ version: '3.8'
services:
lid-server:
image: mariozechner/fasttext-lid-server
image: suspiciousactivity/fasttext-lid-server
ports:
- "${PORT:-8080}:${PORT:-8080}"
environment:
BIN
View File
Binary file not shown.
+16 -3
View File
@@ -33,7 +33,7 @@ int main(int argc, char *argv[]) {
auto text = req.get_param_value("text");
std::istringstream iss(text);
std::vector<std::pair<fasttext::real, std::string>> predictions;
ft.predictLine(iss, predictions, 1, 0.0);
ft.predictLine(iss, predictions, 3, 0.0);
if (predictions.empty()) {
res.status = 500;
@@ -41,8 +41,21 @@ int main(int argc, char *argv[]) {
return;
}
std::string result = "{\"language\":\"" + stripLabel(predictions[0].second) +
"\",\"probability\":" + std::to_string(predictions[0].first) + "}";
std::string result = "[";
bool first = true;
for (const auto& prediction : predictions) {
std::string predictionResult = "{\"language\":\"" + stripLabel(prediction.second) +
"\",\"probability\":" + std::to_string(prediction.first) + "}";
if (!first) {
result += ",";
}
result += predictionResult;
first = false;
}
result += "]";
res.set_content(result, "application/json");
});
+24 -8
View File
@@ -1,8 +1,10 @@
#!/bin/sh
set -e
version=1.0.1
version=1.0.4
image_name="suspiciousactivity/fasttext-lid-server"
# Check git status
if [ -n "$(git status --porcelain)" ]; then
echo "Uncommitted changes exist"
exit 1
@@ -13,12 +15,26 @@ if git rev-parse "v${version}" >/dev/null 2>&1; then
exit 1
fi
docker build --no-cache -t fasttext-lid-server .
# Build AMD64
docker build --platform linux/amd64 -t ${image_name}:${version}-amd64 .
docker push ${image_name}:${version}-amd64
# Build ARM64
docker build --platform linux/arm64 -t ${image_name}:${version}-arm64 .
docker push ${image_name}:${version}-arm64
# Create and push manifest
docker manifest create ${image_name}:${version} \
${image_name}:${version}-amd64 \
${image_name}:${version}-arm64
docker manifest create ${image_name}:latest \
${image_name}:${version}-amd64 \
${image_name}:${version}-arm64
docker manifest push ${image_name}:${version}
docker manifest push ${image_name}:latest
# Tag git release
git tag "v${version}"
git push origin "v${version}"
docker tag fasttext-lid-server mariozechner/fasttext-lid-server:latest
docker push mariozechner/fasttext-lid-server:latest
docker tag fasttext-lid-server mariozechner/fasttext-lid-server:${version}
docker push mariozechner/fasttext-lid-server:${version}
git push origin "v${version}"