immosquare-translate 0.1.4 → 0.1.6

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 326589c34a947bb34891fdef41683bf0a0d2bc5dd649c0598d63d7591eac1341
4
- data.tar.gz: e28ead0b001c5c3ffea1a322e35ba3293e7c916dbe71a8c677d9484efb86a5c8
3
+ metadata.gz: ebb9b4954484db537e1e5a348615ec85fd548699a1163615fa3963f394eca358
4
+ data.tar.gz: f7a10ba2036eaeb0ce74846b2b87c9fc6fdf785fec27094bc1ea96a953e96b53
5
5
  SHA512:
6
- metadata.gz: 8d74b478dbaa133200e77b2638e38bf986204ecfc5946b2653cb7687b40a8bfbfb28e6e163c772aac679f1c599169bc44c66c14cdb224be8fba830353ad21f69
7
- data.tar.gz: bbf947a36c077cfc1b419936cac7a88e4cee75df414c11133f85172aa431cff10e95b5336e202171a18b34036a9964339be5515096ad554fa14a5d271b20e586
6
+ metadata.gz: ef04b72ee73ebb5d43f8271731a3c508bf0c60549a2e102f687e05f2dcd83db81ab827e9bc3fa61b7a76af62be8cce67ecb19165ef80e0a526765d3092d28105
7
+ data.tar.gz: 722e14d7315e7d140b5ee9512351a548120c8922aee79147cb4faf4627a21fb316c456e14741a9acd1ff89db8d576aa4bfcaec2f77bd1166c140f196365403c1
@@ -26,16 +26,23 @@ module ImmosquareTranslate
26
26
  "Authorization" => "Bearer #{ImmosquareTranslate.configuration.openai_api_key}"
27
27
  }
28
28
 
29
- prompt_system = "As a sophisticated translation AI, your role is to translate sentences from a specified source language to multiple target languages. " \
30
- "It is imperative that you return the translations in a single, pure JSON string format. Use ISO 639-1 language codes for specifying languages. " \
31
- "If string is html, you should return the translated html." \
32
- "Ensure that the output does not include markdown (```json) or any other formatting characters. Adhere to the JSON structure meticulously."
29
+ prompt_system = "As a sophisticated translation AI, your role is to accurately translate sentences from a specified source language to multiple target languages. " \
30
+ "All translations must be returned as a single, pure JSON string, adhering strictly to JSON format standards. Use ISO 639-1 codes to specify languages. " \
31
+ "Should the input be HTML, return the translated content preserving the original HTML formatting. " \
32
+ "In cases where the sentence contains newline characters '\\n', or tab characters '\\t', ensure these are retained in the translation without alteration. " \
33
+ "Your output should be free from markdown (e.g., ```json) or any extraneous formatting characters, focusing solely on maintaining the integrity of the JSON structure."
33
34
 
34
35
 
35
- prompt = "Translate the #{text.size} following #{text.size == 1 ? "sentence" : "sentences"} from #{from_iso} (with ISO 639-1 code : #{from}) into the languages #{to_iso.map {|iso, l| "#{l} (with ISO 639-1 code : #{iso})" }.join(", ")}.\n" \
36
- "Format the output as a single pure JSON string.\n" \
37
- "Follow this array structure: {\"datas\":[{\"locale_iso\":\"Translated Text\"}]}, using the correct ISO 639-1 language codes for each translation. " \
38
- "Your response should strictly conform to this JSON structure without any additional characters or formatting.\nSentences to translate are:"
36
+
37
+
38
+ prompt = "Translate the #{text.size} #{text.size == 1 ? "sentence" : "sentences"} provided below from the source language (ISO 639-1 code: #{from}) to the target languages specified: #{to_iso.map {|iso, language| "#{language} (ISO 639-1 code: #{iso})" }.join(", ")}. " \
39
+ "Before translating, correct any spelling or grammatical errors in each sentence. " \
40
+ "If the source language is also a target language, include the corrected version of the sentence for that language as well. " \
41
+ "Format the translation output as a JSON string adhering to the following structure: " \
42
+ "{\"datas\":[{\"locale_iso\": \"Translated Text\"}]}, where 'locale_iso' is replaced with the appropriate ISO 639-1 code for each translation. " \
43
+ "Ensure the output strictly follows this JSON format, without any extraneous characters or formatting. " \
44
+ "Sentences to translate:"
45
+
39
46
 
40
47
  text.each_with_index do |sentence, index|
41
48
  prompt += "\n#{index + 1}: #{sentence}"
@@ -80,10 +87,11 @@ module ImmosquareTranslate
80
87
  ## On s'assure de ne renvoyer que les locales demandées
81
88
  ## car l'API peut renvoyer des locales non demandées...
82
89
  ##============================================================##
83
- p = JSON.parse(choice["message"]["content"])
84
- p["datas"].map! do |my_hash|
85
- my_hash.select! {|iso, _value| to.include?(iso.to_s) }
86
- end
90
+ content = JSON.parse(choice["message"]["content"])
91
+ datas = content["datas"]
92
+ datas.map do |hash|
93
+ hash.select {|key, _| to.include?(key) }
94
+ end.reject(&:empty?)
87
95
  rescue StandardError => e
88
96
  puts(e.message)
89
97
  puts(e.backtrace)
@@ -1,3 +1,3 @@
1
1
  module ImmosquareTranslate
2
- VERSION = "0.1.4".freeze
2
+ VERSION = "0.1.6".freeze
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: immosquare-translate
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.4
4
+ version: 0.1.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - IMMO SQUARE