MLDeveloper commited on
Commit
c1216bb
·
verified ·
1 Parent(s): 7949e50

Update translator.py

Browse files
Files changed (1) hide show
  1. translator.py +58 -35
translator.py CHANGED
@@ -1,35 +1,58 @@
1
- import requests
2
- import os
3
-
4
- # Your Hugging Face API token (Replace 'your_token_here' with your actual token)
5
-
6
- API_TOKEN = os.getenv("HF_API_TOKEN")
7
-
8
- # Define model and API endpoint
9
- MODEL_ID = "bigcode/starcoder"
10
- API_URL = f"https://api-inference.huggingface.co/models/{MODEL_ID}"
11
- HEADERS = {"Authorization": f"Bearer {API_TOKEN}"}
12
-
13
- def translate_code(code_snippet, source_lang, target_lang):
14
- """
15
- Translate code using Hugging Face API (No local download needed).
16
- """
17
- prompt = f"Translate the following {source_lang} code to {target_lang}:\n\n{code_snippet}\n\nTranslated {target_lang} Code:"
18
-
19
- response = requests.post(API_URL, headers=HEADERS, json={"inputs": prompt})
20
-
21
- if response.status_code == 200:
22
- return response.json()[0]["generated_text"]
23
- else:
24
- return f"Error: {response.status_code}, {response.text}"
25
-
26
- # Example usage
27
- source_code = """
28
- def add(a, b):
29
- return a + b
30
- """
31
- translated_code = translate_code(source_code, "Python", "Java")
32
- print("Translated Java Code:\n", translated_code)
33
-
34
-
35
-
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import requests
2
+ import os
3
+
4
+ # Retrieve Hugging Face API token from environment variable
5
+ API_TOKEN = os.getenv("HF_API_TOKEN")
6
+
7
+ if not API_TOKEN:
8
+ raise ValueError("⚠️ Error: Hugging Face API token is missing! Set the HF_API_TOKEN environment variable.")
9
+
10
+ # Define model and API endpoint
11
+ MODEL_ID = "bigcode/starcoder"
12
+ API_URL = f"https://api-inference.huggingface.co/models/{MODEL_ID}"
13
+ HEADERS = {"Authorization": f"Bearer {API_TOKEN}"}
14
+
15
+ def translate_code(code_snippet, source_lang, target_lang):
16
+ """
17
+ Translate code using Hugging Face API.
18
+ """
19
+ prompt = f"Translate the following {source_lang} code to {target_lang}:\n\n{code_snippet}\n\nTranslated {target_lang} Code:\n"
20
+
21
+ try:
22
+ response = requests.post(API_URL, headers=HEADERS, json={"inputs": prompt})
23
+
24
+ if response.status_code == 200:
25
+ response_json = response.json()
26
+ if isinstance(response_json, list) and len(response_json) > 0:
27
+ generated_text = response_json[0].get("generated_text", "")
28
+ translated_code = generated_text.split(f"Translated {target_lang} Code:\n")[-1].strip()
29
+ return translated_code
30
+ else:
31
+ return "⚠️ Error: Unexpected response format from API."
32
+
33
+ elif response.status_code == 400:
34
+ return "⚠️ Error: Invalid request. Check input format."
35
+
36
+ elif response.status_code == 401:
37
+ return "⚠️ Error: Unauthorized. Check your API token."
38
+
39
+ elif response.status_code == 403:
40
+ return "⚠️ Error: Access forbidden. You may need special access to this model."
41
+
42
+ elif response.status_code == 503:
43
+ return "⚠️ Error: Model is loading. Please wait a moment and try again."
44
+
45
+ else:
46
+ return f"⚠️ Error {response.status_code}: {response.text}"
47
+
48
+ except requests.exceptions.RequestException as e:
49
+ return f"⚠️ Network Error: {str(e)}"
50
+
51
+ # Example usage
52
+ if __name__ == "__main__":
53
+ source_code = """
54
+ def add(a, b):
55
+ return a + b
56
+ """
57
+ translated_code = translate_code(source_code, "Python", "Java")
58
+ print("Translated Java Code:\n", translated_code)