immosquare-translate 0.1.4 → 0.1.5

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: 9daf467e21100501ea1833692e80742d341950fb05f1a451b25134a83e7ba7e1
4
+ data.tar.gz: 7fe077c183fb8beee8d917abad7d014eafd811ef300574cfc776427efad51f0e
5
5
  SHA512:
6
- metadata.gz: 8d74b478dbaa133200e77b2638e38bf986204ecfc5946b2653cb7687b40a8bfbfb28e6e163c772aac679f1c599169bc44c66c14cdb224be8fba830353ad21f69
7
- data.tar.gz: bbf947a36c077cfc1b419936cac7a88e4cee75df414c11133f85172aa431cff10e95b5336e202171a18b34036a9964339be5515096ad554fa14a5d271b20e586
6
+ metadata.gz: 5758dc40a24ab4721d4ec72184d181567e96949b03aeb71e8bbdd14ffc107f0def5197719bf069ab65486fb65876223029d67f5f82de12a5ee96391c5dd61b97
7
+ data.tar.gz: 8ade76c458bb26cec34a1c369703b6e1141a10fc99fbb56774e423ea3ccb95658c82863c7c86cb9169d3fd82e2434cafeb200390f2b7d283a391de44c574e868
@@ -26,16 +26,21 @@ 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." \
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
32
  "Ensure that the output does not include markdown (```json) or any other formatting characters. Adhere to the JSON structure meticulously."
33
33
 
34
34
 
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:"
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:"
43
+
39
44
 
40
45
  text.each_with_index do |sentence, index|
41
46
  prompt += "\n#{index + 1}: #{sentence}"
@@ -80,10 +85,11 @@ module ImmosquareTranslate
80
85
  ## On s'assure de ne renvoyer que les locales demandées
81
86
  ## car l'API peut renvoyer des locales non demandées...
82
87
  ##============================================================##
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
88
+ content = JSON.parse(choice["message"]["content"])
89
+ datas = content["datas"]
90
+ datas.map do |hash|
91
+ hash.select {|key, _| to.include?(key) }
92
+ end.reject(&:empty?)
87
93
  rescue StandardError => e
88
94
  puts(e.message)
89
95
  puts(e.backtrace)
@@ -1,3 +1,3 @@
1
1
  module ImmosquareTranslate
2
- VERSION = "0.1.4".freeze
2
+ VERSION = "0.1.5".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.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - IMMO SQUARE