Skip to content

Commit ba3bee1

Browse files
committed
MyMemory ve OpenAI çevirici sınıflarında hata kontrolü eklendi; MyMemory çevirisinde 500 karakterden uzun metinler için doğrudan metin döndürülmesi sağlandı. OpenAI çeviricisinde ise API hataları için yakalama mekanizması oluşturuldu ve hata durumunda orijinal metin döndürülecek şekilde güncellendi.
1 parent 64e7584 commit ba3bee1

File tree

2 files changed

+37
-19
lines changed

2 files changed

+37
-19
lines changed

src/Translators/MyMemoryTranslator.php

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,10 @@ public function handle(string $source, string $target, string $text): string
1010
{
1111
$apiUrl = 'https://api.mymemory.translated.net/get';
1212

13+
if (strlen($text) > 500) {
14+
return $text;
15+
}
16+
1317
$query = [
1418
'q' => $text,
1519
'langpair' => sprintf('%s|%s', $source, $target),
@@ -18,7 +22,15 @@ public function handle(string $source, string $target, string $text): string
1822

1923
$response = Http::get($apiUrl, $query);
2024

21-
return data_get($response->json(), 'responseData.translatedText', $text);
25+
$data = $response->json();
26+
27+
$status = data_get($data, 'responseStatus', 0);
28+
29+
if ($status === '403') {
30+
return $text;
31+
}
32+
33+
return data_get($data, 'responseData.translatedText', $text);
2234
}
2335

2436
public function icon(): string

src/Translators/OpenAITranslator.php

Lines changed: 24 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -16,28 +16,34 @@ public function handle(string $source, string $target, string $text): string
1616
throw new \Exception('OpenAI API key not found. Please set the key in the environment variable OPENAI_API_KEY=xxxxxxx-...');
1717
}
1818

19-
$client = \OpenAI::factory()->withApiKey($apiKey)->withBaseUri(config('translator.openai.base_url'))->make();
19+
try {
20+
$client = \OpenAI::factory()->withApiKey($apiKey)->withBaseUri(config('translator.openai.base_url'))->make();
2021

21-
$pattern = config('translator.pattern');
22-
$sourcePattern = $pattern['source'] ?? '{source}';
23-
$targetPattern = $pattern['target'] ?? '{target}';
24-
$textPattern = $pattern['text'] ?? '{text}';
22+
$pattern = config('translator.pattern');
23+
$sourcePattern = $pattern['source'] ?? '{source}';
24+
$targetPattern = $pattern['target'] ?? '{target}';
25+
$textPattern = $pattern['text'] ?? '{text}';
2526

26-
$response = $client->chat()->create([
27-
'model' => config('translator.openai.model'),
28-
'messages' => [
29-
[
30-
'role' => 'system',
31-
'content' => config('translator.openai.system_message'),
27+
$response = $client->chat()->create([
28+
'model' => config('translator.openai.model'),
29+
'messages' => [
30+
[
31+
'role' => 'system',
32+
'content' => config('translator.openai.system_message'),
33+
],
34+
[
35+
'role' => 'user',
36+
'content' => str_replace([$sourcePattern, $targetPattern, $textPattern], [mb_strtolower($source), mb_strtolower($target), $text], config('translator.openai.user_message')),
37+
],
3238
],
33-
[
34-
'role' => 'user',
35-
'content' => str_replace([$sourcePattern, $targetPattern, $textPattern], [mb_strtolower($source), mb_strtolower($target), $text], config('translator.openai.user_message')),
36-
],
37-
],
38-
]);
39+
]);
40+
41+
return $response->choices[0]->message->content;
42+
} catch (\Throwable $e) {
43+
report($e);
44+
}
3945

40-
return $response->choices[0]->message->content;
46+
return $text;
4147
}
4248

4349
public function icon(): string

0 commit comments

Comments
 (0)