File size: 3,380 Bytes
2cd173a 91978c4 2cd173a 91978c4 dd0ca62 e189651 2cd173a d3eee90 4dad974 f8de688 4dad974 dd0ca62 4dad974 e189651 dd0ca62 f8de688 4b2018f f8de688 dd0ca62 4dad974 d3eee90 2cd173a 93928ba 2cd173a 4b2018f e189651 4b2018f e189651 4b2018f e189651 4b2018f e189651 2cd173a dd0ca62 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 |
from flask import Flask, request, jsonify
from transformers import pipeline
app = Flask(__name__)
# Initialize the translation pipeline
sw_to_en = pipeline("translation", model="Bildad/Swahili-English_Translation")
en_to_sw = pipeline("translation", model="Bildad/English-Swahili_Translation")
@app.route("/", methods=["GET"])
def home():
html_content = f"""
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>ChatEasy swa-eng Translation API</title>
<style>
body {{
font-family: Arial, sans-serif;
line-height: 1.6;
margin: 0;
padding: 0;
background-color: #f4f4f4;
}}
.container {{
width: 80%;
margin: auto;
margin-top: 50px;
overflow: hidden;
background: #fff;
padding: 20px;
border-radius: 8px;
box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
}}
h1 {{
color: #333;
}}
h2 {{
color: #555;
margin-top: 20px;
}}
pre {{
background-color: #f9f9f9;
border: 1px solid #ddd;
padding: 10px;
border-radius: 4px;
overflow-x: auto;
}}
code {{
background-color: #f4f4f4;
padding: 2px 4px;
border-radius: 4px;
color: #d14;
}}
.payload-key {{
color: #d14;
}}
.payload-value {{
color: green;
}}
</style>
</head>
<body>
<div class="container">
<h1>ChatEasy swa-eng Translation API</h1>
<p>Welcome to the ChatEasy swa-eng Translation API documentation.</p>
<p>To use the API, send a POST request to <code>/translate</code>.</p>
<h2>Request Payload</h2>
<pre>
{
"<span class="payload-key">text</span>" : "<span class="payload-value">Siku njema</span>",
"<span class="payload-key">target</span>" : "<span class="payload-value">en</span>"
}
</pre>
<h2>Expected Response</h2>
<pre>{ "<span class="payload-key">translated_text</span>" : "<span class="payload-value">A good day</span>" }</pre>
</div>
</body>
</html>
"""
return html_content
@app.route("/translate", methods=["POST"])
def translate():
data = request.get_json()
if "text" not in data:
return jsonify({"error": "No text provided"}), 400
if "target" not in data:
return jsonify({"error": "No Target Language Provided"}), 400
text_to_translate = data["text"]
target_language = data["target"]
if target_language == "sw":
translation = en_to_sw(text_to_translate)[0]
elif target_language == "en":
translation = sw_to_en(text_to_translate)[0]
else:
return jsonify({"error": "Invalid Target Language"}), 400
translated_text = translation["translation_text"]
return jsonify({"translated_text": translated_text})
if __name__ == "__main__":
app.run(debug=True)
|