rick commited on
Commit
c76b52d
·
unverified ·
1 Parent(s): 91771a4
Files changed (3) hide show
  1. core/DetectLanguage.py +87 -0
  2. pages/main.py +2 -53
  3. var_app.py +1 -1
core/DetectLanguage.py ADDED
@@ -0,0 +1,87 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #coding: utf-8
2
+
3
+ # Standard libraries
4
+ #import json
5
+ #import re
6
+
7
+ from os import getenv
8
+ #from typing import Any
9
+ #from typing import Dict
10
+ #from typing import IO
11
+ #from typing import List
12
+ #from typing import Optional
13
+ #from typing import Tuple
14
+ #from typing import Union
15
+ #from io import BytesIO
16
+
17
+ # Third-party libraries
18
+ import requests
19
+
20
+ from openai import OpenAI
21
+ #from pydub import AudioSegment
22
+
23
+ def check_openai_api_key(api_key):
24
+ import openai
25
+ client = openai.OpenAI(api_key=api_key)
26
+ try:
27
+ client.models.list()
28
+ except openai.AuthenticationError:
29
+ return False
30
+ else:
31
+ return True
32
+
33
+ def detect_language(input_text: str, temperature: float = 0.2, context_window: int = 128) -> str:
34
+ """
35
+ Détecte la langue d'un texte donné.
36
+
37
+ Args:
38
+ input_text (str): Le texte dont il faut détecter la langue.
39
+ temperature (float): La température pour le modèle de langage. Par défaut à 0.2.
40
+ context_window (int): Longueur de la fenêtre de contexte à utiliser pour la détection.
41
+
42
+ Returns:
43
+ str: La langue détectée au format ISO-639-1.
44
+
45
+ Raises:
46
+ ValueError: Si la réponse de l'API est invalide.
47
+ requests.RequestException: En cas d'erreur de communication avec l'API.
48
+ """
49
+ system_prompt = (
50
+ "Agissez comme une fonction de détection de langue. "
51
+ "Je fournirai du texte dans n'importe quelle langue, et vous détecterez sa langue. "
52
+ "Fournissez le résultat de votre détection au format ISO-639-1. "
53
+ "Votre réponse doit représenter l'argument `language` et ne contenir "
54
+ "que sa valeur sous forme de chaîne. "
55
+ "Fournir la langue d'entrée au format ISO-639-1 améliorera la précision et la latence."
56
+ )
57
+ try:
58
+ client = OpenAI(api_key=getenv("OPENAI_API_KEY"))
59
+
60
+ #################
61
+
62
+ response = client.chat.completions.create(
63
+ model="gpt-4o-mini",
64
+ temperature=temperature,
65
+ messages=[
66
+ {
67
+ "role": "system",
68
+ "content": system_prompt
69
+ },
70
+ {
71
+ "role": "user",
72
+ "content": input_text
73
+ }
74
+ ],
75
+ frequency_penalty=0.2,
76
+ presence_penalty=0,
77
+ max_tokens=context_window
78
+ )
79
+ detected_language = response.choices[0].message.content
80
+ if not detected_language:
81
+ raise ValueError("La réponse de l'API est vide")
82
+ return detected_language
83
+ except requests.RequestException as e:
84
+ raise requests.RequestException(f"Erreur de communication avec l'API : {str(e)}")
85
+ except Exception as e:
86
+ raise ValueError(f"Erreur inattendue lors de la détection de la langue : {str(e)}")
87
+
pages/main.py CHANGED
@@ -30,6 +30,8 @@ from var_app import __version__
30
  from core.files import load_ui_language
31
  from core.files import read_file
32
  from core.text_to_speech import openai_tts
 
 
33
 
34
  # Au début du fichier, après les imports
35
  st.set_page_config(
@@ -152,59 +154,6 @@ def transcribe_audio(filepath: Union[str, IO], language: Optional[str] = None) -
152
  return ""
153
 
154
 
155
- def detect_language(input_text: str, temperature: float = 0.2, context_window: int = 128) -> str:
156
- """
157
- Détecte la langue d'un texte donné.
158
-
159
- Args:
160
- input_text (str): Le texte dont il faut détecter la langue.
161
- temperature (float): La température pour le modèle de langage. Par défaut à 0.2.
162
- context_window (int): Longueur de la fenêtre de contexte à utiliser pour la détection.
163
-
164
- Returns:
165
- str: La langue détectée au format ISO-639-1.
166
-
167
- Raises:
168
- ValueError: Si la réponse de l'API est invalide.
169
- requests.RequestException: En cas d'erreur de communication avec l'API.
170
- """
171
- system_prompt = (
172
- "Agissez comme une fonction de détection de langue. "
173
- "Je fournirai du texte dans n'importe quelle langue, et vous détecterez sa langue. "
174
- "Fournissez le résultat de votre détection au format ISO-639-1. "
175
- "Votre réponse doit représenter l'argument `language` et ne contenir "
176
- "que sa valeur sous forme de chaîne. "
177
- "Fournir la langue d'entrée au format ISO-639-1 améliorera la précision et la latence."
178
- )
179
- try:
180
- response = client.chat.completions.create(
181
- model="gpt-4o-mini",
182
- temperature=temperature,
183
- messages=[
184
- {
185
- "role": "system",
186
- "content": system_prompt
187
- },
188
- {
189
- "role": "user",
190
- "content": input_text
191
- }
192
- ],
193
- frequency_penalty=0.2,
194
- presence_penalty=0,
195
- max_tokens=context_window
196
- )
197
- detected_language = response.choices[0].message.content
198
- if not detected_language:
199
- raise ValueError("La réponse de l'API est vide")
200
- return detected_language
201
- except requests.RequestException as e:
202
- raise requests.RequestException(f"Erreur de communication avec l'API : {str(e)}")
203
- except Exception as e:
204
- raise ValueError(f"Erreur inattendue lors de la détection de la langue : {str(e)}")
205
-
206
-
207
-
208
  def concatenate_audio_files(audio_list: List[Tuple[Union[bytes, str], float]]) -> Optional[bytes]:
209
  """
210
  Concatène plusieurs fichiers audio avec des effets sonores.
 
30
  from core.files import load_ui_language
31
  from core.files import read_file
32
  from core.text_to_speech import openai_tts
33
+ from core.DetectLanguage import detect_language
34
+
35
 
36
  # Au début du fichier, après les imports
37
  st.set_page_config(
 
154
  return ""
155
 
156
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
157
  def concatenate_audio_files(audio_list: List[Tuple[Union[bytes, str], float]]) -> Optional[bytes]:
158
  """
159
  Concatène plusieurs fichiers audio avec des effets sonores.
var_app.py CHANGED
@@ -1 +1 @@
1
- __version__ = "1.2.6"
 
1
+ __version__ = "1.2.7"