immosquare-translate 0.1.7 → 0.1.8

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: fdfdc479af37a288d9d1b16fad5aa331509facfaf906982f2eeec13c4f88bf89
4
- data.tar.gz: d4025b70638d454d4363abf40dd29f0a6d86bae51406cf60f0b5dd4b3e77646f
3
+ metadata.gz: 1faeaa90371b731d6a14a8cfac0fa67f335278dd94c0a18b539cfcf622ca9c01
4
+ data.tar.gz: 530d4bcd43664a2adb51f909f913901da2350d68dae366dbbdb0bf423870b7f9
5
5
  SHA512:
6
- metadata.gz: e5da8f3f28db2e39bc251d9a9f466cafdadd0f90a2a122b7e62f05ca66b413e6afda8685c634ab78aa3a5dadc15de513596bef9163516a40d97623a87d454662
7
- data.tar.gz: b9d956d253702bb30027f90a8052184be56ce86fc246e728211847f038bbc5ceea885dbc6345f0955d1d59fb7ab102948fa81429c5d71129050ddf6ae8ce77de
6
+ metadata.gz: c90ef3262e2ae2d1ef258fc98c1de0e8870cda69f78cf818c17534e7aa580a35f18522d5f18961581ec419092bc3846118b1ddd703f50a95eb1ebb6af7e36107
7
+ data.tar.gz: 2f112af6ddde271c8ea31abbbb9b148a82346871a5c9fe54c51522dd4e555f9e7723f931fa15dff73851520fdeec8f277a0f2387983deef3389db6dc2d860f69
@@ -29,24 +29,26 @@ module ImmosquareTranslate
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
30
  "Rules to respect:\n" \
31
31
  "- Use ISO 639-1 language codes for specifying languages." \
32
+ "- Respond with an array of a flat objects in JSON (minified, without any extraneous characters or formatting)\n" \
33
+ "- Format the translation output as a JSON string adhering to the following structure: {\"datas\":[{\"locale_iso\": \"Translated Text\"}]}" \
34
+ "- Ensure that the output does not include markdown (```json) or any other formatting characters. Adhere to the JSON structure meticulously.\n" \
32
35
  "- Correct any spelling or grammatical errors in the source text before translating.\n" \
33
36
  "- 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
37
  "- 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."
38
+ "- If string to translate contains underscores in row, keep them, don't remove them\n" \
39
+
40
40
 
41
41
 
42
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
45
  ##============================================================##
46
- ## we replace the \n by ___ to avoid the API to remove them
46
+ ## we replace the \n \t by ___ to avoid JSON parsing errors
47
+ ## We use the same symbol to replace the \n and \t because
48
+ ## if we use different symbols sometimes the API inverse them.
47
49
  ##============================================================##
48
50
  text.each_with_index do |sentence, index|
49
- prompt += "\n#{index + 1}: #{sentence.gsub("\n", "___").gsub("\t", "---")}"
51
+ prompt += "\n#{index + 1}: #{sentence.gsub("\n", "___").gsub("\t", "____")}"
50
52
  end
51
53
 
52
54
 
@@ -93,7 +95,7 @@ module ImmosquareTranslate
93
95
  datas.map do |hash|
94
96
  hash
95
97
  .select {|key, _| to.include?(key) }
96
- .transform_values {|value| value.gsub("___", "\n").gsub("---", "\t") }
98
+ .transform_values {|value| value.gsub("____", "\t").gsub("___", "\n") }
97
99
  end.reject(&:empty?)
98
100
  rescue StandardError => e
99
101
  puts(e.message)
@@ -1,3 +1,3 @@
1
1
  module ImmosquareTranslate
2
- VERSION = "0.1.7".freeze
2
+ VERSION = "0.1.8".freeze
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: immosquare-translate
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.7
4
+ version: 0.1.8
5
5
  platform: ruby
6
6
  authors:
7
7
  - IMMO SQUARE
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-04-04 00:00:00.000000000 Z
11
+ date: 2024-04-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: httparty