Shangri-La Frontier – Thợ săn game rác chinh phục game thần - Chương 4: Rồng hỡi, rồng ơi! Phần 4
「Được rồi Yosh, đến rồi nè! Và cũng từ đây,depending on post_num):
response_text = response.text
if selected_model == "gemini":
part = response.candidates[0].content.parts[0]
response_text = part.text if hasattr(part, 'text') else ""
else:
if selected_model == "gemma":
part = response.candidates[0].content.parts[0]
response_text = part.text if hasattr(part, 'text') else ""
# Try to parse as JSON
try:
json_match = re.search(r'```json\s*(.*?)\s*```', response_text, re.DOTALL)
if json_match:
response_data = json.loads(json_match.group(1))
else:
response_data = json.loads(response_text)
result["success"] = response_data.get("success", False)
result["response"] = response_data.get("response", "")
result["translation"] = response_data.get("translation", "")
except json.JSONDecodeError:
result["success"] = False
result["response"] = response_text
result["translation"] = ""
except Exception as e:
result["success"] = False
result["error"] = str(e)
return result
def translate_from_json(json_file: str, output_file: str = "output.json", model_name: str = "gemma-3-27b-it", num_shots: int = 3) -> dict:
"""
Translate a JSON file containing Japanese text to Vietnamese.
Expected JSON format: {"original_text": "Japanese text"}
"""
with open(json_file, 'r', encoding='utf-8') as f:
data = json.load(f)
original_text = data.get("original_text", "")
if not original_text:
return {"success": False, "error": "No original_text found in the JSON file"}
result = call_llm(original_text, model_name=model_name, num_shots=num_shots)
# Save output
output_data = {
"original_text": original_text,
"translated_text": result.get("translation", ""),
"model": model_name,
"success": result.get("success", False)
}
with open(output_file, 'w', encoding='utf-8') as f:
json.dump(output_data, f, ensure_ascii=False, indent=2)
print(f"Output saved to {output_file}")
return result
if __name__ == "__main__":
import argparse
parser = argparse.ArgumentParser(description="Translate Japanese text to Vietnamese using LLM")
parser.add_argument("--input", "-i", type=str, help="Input JSON file")
parser.add_argument("--output", "-o", type=str, default="output.json", help="Output JSON file")
parser.add_argument("--model", "-m", type=str, default="gemma-3-27b-it", help="Model name")
parser.add_argument("--num-shots", "-n", type=int, default=3, help="Number of few-shot examples")
args = parser.parse_args()
if args.input:
result = translate_from_json(args.input, args.output, args.model, args.num_shots)
print(f"Success: {result.get('success', False)}")
if result.get("translation"):
print(f"Translation:\n{result['translation']}")
else:
# Interactive mode
print("Interactive mode - Enter Japanese text to translate (Ctrl+C to exit):")
while True:
try:
text = input("\nJapanese: ")
if not text.strip():
continue
result = call_llm(text, model_name=args.model, num_shots=args.num_shots)
print(f"\nVietnamese: {result.get('translation', 'N/A')}")
print(f"Success: {result.get('success', False)}")
except KeyboardInterrupt:
print("\nGoodbye!")
break
Sử dụng:
1. Chế độ tương tác:
```bash
python translate.py
```
2. Chế độ file:
```bash
python translate.py --input input.json --output output.json
```
3. Với model cụ thể:
```bash
python translate.py -i input.json -m gemini-2.5-flash-preview-05-20 -o output.json
```
Truyện liên quan
Người Thợ Hỗ Trợ Vrmmo ~ Kẻ Sắp Đặt Các Top Player ~
Người bạn thời thơ ấu hành động, Miiyu (Miyu), kéo tôi vào một VRMMO có tên là "Trailblazer", thường gọi ...
Elysion Online ~ Long Nhân Và Triệu Hồi Sư ~
Vì làm quá nhiều việc bán thời gian, cậu học sinh trung học Konoe Seigo phải nhập viện, bị gia ...
Mix Job Online ~ Nhà Văn Light Novel Thách Thức Vrmmo Có Thưởng Với Nghề Bất Lợi Để Thu Thập Tài Liệu
Nhà văn light novel nổi tiếng Monobe Souichi vừa hoàn thành tác phẩm dồn hết tâm huyết suốt 10 năm, ...
Trạng Thái Của Senri-Kun Có Gì Đó Kỳ Lạ?
Đây là câu chuyện kể về nhân vật chính bị ép mặc nữ trang và tận hưởng thế giới VRMMO.. ...
Mưu Sĩ Thất Nghiệp Chinh Phục Khoảng Trắng Thế Giới Bằng Công Việc Phế Thải ~Trang Bị Biến Hình Cổ Đại Càng Mạnh Khi Người Dùng Càng Điên~
Quân sư của đội chuyên nghiệp《Kỵ Sĩ Đoàn Trắng》 – Jin, tức Kamishiro Fuyushi, dù có công lao đóng góp ...
Tôi Không Thích Bị Đau Nên Muốn Dồn Hết Điểm Vào Phòng Thủ.
Honjou Kaede được người bạn của mình, Shirah Mine Risa, rủ rê chơi VRMMO.. Cô không ghét game, nhưng cảm ...