immosquare-translate 0.1.5 → 0.1.7

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: 9daf467e21100501ea1833692e80742d341950fb05f1a451b25134a83e7ba7e1
4
- data.tar.gz: 7fe077c183fb8beee8d917abad7d014eafd811ef300574cfc776427efad51f0e
3
+ metadata.gz: fdfdc479af37a288d9d1b16fad5aa331509facfaf906982f2eeec13c4f88bf89
4
+ data.tar.gz: d4025b70638d454d4363abf40dd29f0a6d86bae51406cf60f0b5dd4b3e77646f
5
5
  SHA512:
6
- metadata.gz: 5758dc40a24ab4721d4ec72184d181567e96949b03aeb71e8bbdd14ffc107f0def5197719bf069ab65486fb65876223029d67f5f82de12a5ee96391c5dd61b97
7
- data.tar.gz: 8ade76c458bb26cec34a1c369703b6e1141a10fc99fbb56774e423ea3ccb95658c82863c7c86cb9169d3fd82e2434cafeb200390f2b7d283a391de44c574e868
6
+ metadata.gz: e5da8f3f28db2e39bc251d9a9f466cafdadd0f90a2a122b7e62f05ca66b413e6afda8685c634ab78aa3a5dadc15de513596bef9163516a40d97623a87d454662
7
+ data.tar.gz: b9d956d253702bb30027f90a8052184be56ce86fc246e728211847f038bbc5ceea885dbc6345f0955d1d59fb7ab102948fa81429c5d71129050ddf6ae8ce77de
@@ -27,23 +27,26 @@ module ImmosquareTranslate
27
27
  }
28
28
 
29
29
  prompt_system = "As a sophisticated translation AI, your role is to translate sentences from a specified source language to multiple target languages.\n" \
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.\n" \
31
- "If string is html, you should return the translated html.\n" \
32
- "Ensure that the output does not include markdown (```json) or any other formatting characters. Adhere to the JSON structure meticulously."
30
+ "Rules to respect:\n" \
31
+ "- Use ISO 639-1 language codes for specifying languages." \
32
+ "- Correct any spelling or grammatical errors in the source text before translating.\n" \
33
+ "- If the source language is also a target language, include the corrected version of the sentence for that language as well, if not dont include it.\n" \
34
+ "- If string to translate is html, you should return the translated html.\n" \
35
+ "- If string to translate contains 3 underscores in row ___, keep them, don't translate the them, don't remove them, don't change them for dashes (they correspond to the newline)\n" \
36
+ "- If string to translate contains 3 dashes in row ---, keep them, don't translate the them, don't remove them, don't change them for underscores (they correspond to the tabulation)\n" \
37
+ "- Ensure that the output does not include markdown (```json) or any other formatting characters. Adhere to the JSON structure meticulously.\n" \
38
+ "- Ensure the output strictly follows this JSON format, without any extraneous characters or formatting.\n" \
39
+ "- Format the translation output as a JSON string adhering to the following structure: {\"datas\":[{\"locale_iso\": \"Translated Text\"}]}, where 'locale_iso' is replaced with the appropriate ISO 639-1 code for each translation."
33
40
 
34
41
 
35
-
36
- 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(", ")}. " \
37
- "Before translating, correct any spelling or grammatical errors in each sentence. " \
38
- "If the source language is also a target language, include the corrected version of the sentence for that language as well. " \
39
- "Format the translation output as a JSON string adhering to the following structure: " \
40
- "{\"datas\":[{\"locale_iso\": \"Translated Text\"}]}, where 'locale_iso' is replaced with the appropriate ISO 639-1 code for each translation. " \
41
- "Ensure the output strictly follows this JSON format, without any extraneous characters or formatting. " \
42
- "Sentences to translate:"
42
+ prompt = "Translate the #{text.size} following #{text.size == 1 ? "sentence" : "sentences"} 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(", ")}. "
43
43
 
44
44
 
45
+ ##============================================================##
46
+ ## we replace the \n by ___ to avoid the API to remove them
47
+ ##============================================================##
45
48
  text.each_with_index do |sentence, index|
46
- prompt += "\n#{index + 1}: #{sentence}"
49
+ prompt += "\n#{index + 1}: #{sentence.gsub("\n", "___").gsub("\t", "---")}"
47
50
  end
48
51
 
49
52
 
@@ -88,7 +91,9 @@ module ImmosquareTranslate
88
91
  content = JSON.parse(choice["message"]["content"])
89
92
  datas = content["datas"]
90
93
  datas.map do |hash|
91
- hash.select {|key, _| to.include?(key) }
94
+ hash
95
+ .select {|key, _| to.include?(key) }
96
+ .transform_values {|value| value.gsub("___", "\n").gsub("---", "\t") }
92
97
  end.reject(&:empty?)
93
98
  rescue StandardError => e
94
99
  puts(e.message)
@@ -1,3 +1,3 @@
1
1
  module ImmosquareTranslate
2
- VERSION = "0.1.5".freeze
2
+ VERSION = "0.1.7".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.5
4
+ version: 0.1.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - IMMO SQUARE