File size: 10,462 Bytes
339e7ba
 
a7767cc
e383d14
 
293c5f7
5a4349c
bedc162
0a9dfd4
 
53ef663
5a4349c
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2eec4de
bedc162
5a4349c
 
 
 
ce92dc1
5a4349c
0094e06
5b12ec5
 
 
 
1944f0f
 
323919c
97d5722
5b12ec5
5fb350d
5b12ec5
978d185
7302ab4
 
978d185
 
 
 
a835486
7302ab4
5b12ec5
5a4349c
 
 
5fb350d
5b12ec5
339e7ba
 
5a4349c
339e7ba
 
 
 
 
 
 
 
 
 
5b12ec5
339e7ba
 
 
5b12ec5
339e7ba
 
 
 
 
 
 
 
 
 
 
 
 
 
29b2711
339e7ba
 
 
 
3f3a6ea
5b12ec5
3f3a6ea
b797350
29b2711
 
339e7ba
19a03c9
339e7ba
 
 
 
 
 
37b898b
19a03c9
0ec39ac
37b898b
 
339e7ba
83c1451
19a03c9
 
0ec39ac
 
339e7ba
 
19a03c9
5911049
 
 
 
0634d33
5911049
a394a40
045d945
 
d20b3ef
5911049
6df010f
5911049
 
557bd73
608ea04
d20b3ef
557bd73
608ea04
6df010f
608ea04
d20b3ef
821bc43
 
 
557bd73
821bc43
 
 
5911049
557bd73
5911049
 
6df010f
5911049
6df010f
 
5911049
6df010f
d20b3ef
 
5911049
b797350
19a03c9
 
5911049
 
339e7ba
 
 
 
 
0ec39ac
 
 
 
 
 
 
 
 
 
 
 
339e7ba
0ec39ac
339e7ba
0ec39ac
0b1e70e
339e7ba
0ec39ac
0b1e70e
c7b7964
0ec39ac
 
 
 
3a9e58d
c7b7964
0ec39ac
 
 
339e7ba
0ec39ac
 
 
 
 
 
 
 
 
 
339e7ba
0ec39ac
 
 
339e7ba
0ec39ac
 
 
339e7ba
0ec39ac
19a03c9
0ec39ac
339e7ba
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
53ef663
5adc9d6
9148056
 
5adc9d6
53ef663
339e7ba
 
aebbd55
 
 
91e211b
 
aebbd55
 
 
 
 
bedc162
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289

import requests
import math as matha
from g4f.Provider import (
    Bard) 
import g4f
from llama_index.llms.gemini import Gemini
#from bardapi import Bard as Bd
import os 
token=os.environ.get("TOKEN")
toto = os.environ.get("BARD") 
safe = [
    {
        "category": "HARM_CATEGORY_HARASSMENT",
        "threshold": "BLOCK_NONE",
    },
    {
        "category": "HARM_CATEGORY_HATE_SPEECH",
        "threshold": "BLOCK_NONE",
    },
    {
        "category": "HARM_CATEGORY_SEXUALLY_EXPLICIT",
        "threshold": "BLOCK_NONE",
    },
    {
        "category": "HARM_CATEGORY_DANGEROUS_CONTENT",
        "threshold": "BLOCK_NONE",
    },
]

#bard = Bd(token=toto)


os.environ["GOOGLE_API_KEY"] = token

#llm = Gemini(model="models/gemini-1.5-pro-latest",token=8000)


from g4f import Provider, models
from langchain.llms.base import LLM

from langchain_g4f import G4FLLM
g4f.debug.logging = True  # Enable logging
g4f.check_version = False  # Disable automatic version checking
#print(g4f.version)  # Check version


g4f.debug.version_check = False  # Disable automatic version checking

from g4f.client import Client

def rees(input_text):
    client = Client()
    response = client.chat.completions.create(
    model="gpt-3.5-turbo",
    messages=[{"role": "user", "content":input_text}],)
    return response.choices[0].message.content


async def greet(tt):
    response = await llm.acomplete(tt,safety_settings=safe)
    print(response)
    return response 




def infer(im):
    im.save("converted.png")
    url = "https://ajax.thehive.ai/api/demo/classify?endpoint=text_recognition"
    files = {
        "image": ("converted.png", open("converted.png", "rb"), "image/png"),
        "model_type": (None, "detection"),
        "media_type": (None, "photo"),
    }
    headers = {"referer": "https://thehive.ai/"}

    ress = requests.post(url, headers=headers, files=files)

    text = ""
    blocks = []
    for output in ress.json()["response"]["output"]:
        text += output["block_text"]
        for poly in output["bounding_poly"]:
            blocks.append(
                {
                    "text": "".join([c["class"] for c in poly["classes"]]),
                    "rect": poly["dimensions"],
                }
            )

    return text


# app 2

async def gpt(prompt):
    if not prompt:
        return "Veuillez saisir une question."


    #answer = res(prompt)
    
    print(prompt)
    response = rees(prompt)
    print(response)
    return response

async def gpt_francais(french_prompt,choix,autheur):
    
    if not french_prompt:
        return "Veuillez saisir un thème ."

    if choix == "discuter":

    	de = """ Je veux faire mon travail de français  de niveau lycé sous la forme d'une discussion  argumentatif. La question du travail est la suivante: "{french_prompt}". tu devras discuter ce thème. jai besoin dune introduction(avec une problématique et l'annonce du plan), de 3 arguments(avec explication et example et illustration) pour la premiere partie. idem pour la deuxieme partie(3 argument pour lantithese). je veux une phrase de transition entre les deux partie  et a la fin 'une conclusion avec une ouverture(donné sous forme de phrase interogative ) je veux que tu utilise le style décriture de :{autheur} """
    	answer = await llm.acomplete(de,safety_settings=safe)
    	print(answer)
    
    	return answer 
    else:
    	fi_prompt = f"""Je veux faire mon travail de français  de niveau lycé sous la forme d'un travail argumentatif. La question du travail est la suivante: "{french_prompt}". tu devras {choix} ce thème. jai besoin dune introduction(avec une problématique et l'annonce du plan), de 3 arguments(avec explication et example et illustration)  et d'une conclusion avec une ouverture(donné sous forme de phrase interogative ) je veux que tu utilise le style décriture de :{autheur} """   
    	#answer = res(fi_prompt)
    	response = await llm.acomplete(fi_prompt,safety_settings=safe)
    	print(response)
    	return response


async def philo_cc(cc_prompt):
    if not cc_prompt:
        return "Mani rentre le sujet ! "
        
    else:
        #print(cc_prompt)
    
        ge = f""" 
Agis maintenant comme un prof. 
 Je veux que tu me fasse un travail de philo de niveau lycée en respectant scrupulesement le texte suivant. Je veux que ce soit tres detaille. Voici le sujet du travail . : <<  {cc_prompt} >>. Faite le travail en respectant les consignes 
  Voici le plan :


Tu commencera par une introduction dans laquelle tu devra :
1- amorce par constat d'ordre général uniquement + reprise de la citation + reformulation de la citation + connecteur logique d'opposition + problématique. La première question est une interrogation sur la citation tandis que la deuxième questions est une interrogations sur la discussion.


Et ensuite un développement dans laquelle tu devra  dans la première 1 ère partie (explication où il faudra étayer sous forme de thèse) faire ça : 

1- clarification de la pensé ( définition du sujet argument 1)

2- corroboration de la pensée ( Aller dans le même sens que la définition sans pourtant le galvauder  Argument 2 + explication de l'argument + citation + explication de la citation)

Et ensuite une phrase de Transition avant d'aborder la deuxième partie qui sera le (commentaire où il faudra réfuter l'explication sous forme de anti thèse en trois parties + des citations) sans laquelle tu devra faire ca: 

Argument 1 de l'anti thèse  + explication de l'argument + citation + explication de la citation

Argument 2 de l'anti thèse  + explication de l'argument + citation + explication de la citation
 
Argument 3 de l'anti thèse  + explication de l'argument + citation + explication de la citation
un commentaire 

Et tu fini avec la conclusion 
Conclusion. 

- Bilan :  partie explicative + commentaire 
-
 réponse à la question 

Perspective ( facultative)


        """
        response = rees(ge)
        print(response)
        return response
    






async def gpt_philo(phi_prompt, autheur):
    if not phi_prompt:
        return "Veuillez saisir un sujet."
    haha = f"""
    Je veux que tu me traite mon travail de philosophie de niveau lycé sous la forme d'une dissertation. 
    La question du travail est la suivante: "{phi_prompt}". en te basant sur le plan suivant :
    INTRODUCTION:
    - Amorcer le sujet avec moins de deux phrases
    - Poser le problème 
    - Formuler la problématique autour de deux questions essentielles:
        - Question-thèse 
        - Question-antithèse

    DEVELOPPEMENT

    Première Partie: Formuler la thèse initiale
    je veux trois arguments avec le plan suivant (Argument + Explication de l'argument + Illustration soit avec un exemple de la vie courante soit avec une citation philosophique). Je veux que ce soit le plus détaillé possible surtout sur la partie explication. Je veux un gros text(10x la taille normal)

    Deuxième Partie: Formuler l'antithèse 
    je veux trois arguments avec le plan suivant (Argument + Explication de l'argument + Illustration soit avec un exemple de la vie courante soit avec une citation philosophique). Je veux que ce soit le plus détaillé possible surtout sur la partie explication. Je veux un gros text(10x la taille normal)
    
    CONCLUSION
    1. Bilan de la réflexion:
    - Résumer les grandes parties de la réflexion
    2. Prise de position

je veux un travail bien détaillé et complet avec un français raffiné et soutenu. le travail doit être extrêmement détaillé et faire environ 7000 token
    """
    response = await llm.acomplete(haha, safety_settings=safe)
    return response

async def gpt_hist(hist_prompt, p_1, p_2, p_3):
    if not hist_prompt:
        return "Veuillez saisir un thème."
    histt_prompt = f"""
    Je veux que tu me traite mon travail d'histoire de niveau lycé sous la forme d'une dissertation. 
    La question du travail est la suivante: "{hist_prompt}". les différents points à détailler sont :{p_1}, {p_2}, {p_3}. en te basant sur le plan suivant :
    INTRODUCTION:
    - approche par définition du sujet, par constat ou rappel historique (du général au particulier/cas particulier au général)
    - problématique/problème du sujet
    - annonce du plan

    DEVELOPPEMENT
    pour chaque point, je voudrais 
    trois arguments (+explication + exemple). il faudra une phrase chapeau au début et une phrase de transition à la fin de chaque point. 

    CONCLUSION
    1. Bilan de la réflexion.
    2. question d'ouverture du sujet.
    """
    response = await llm.acomplete(histt_prompt, safety_settings=safe)
    print(response)
    return response

def calcul(math, francais, physique, svt, philo, eps, thea, hist, anglais):
    math = math * 5
    francais = francais * 3
    physique = physique * 4
    svt = svt * 3
    philo = philo * 2
    eps = eps * 2
    thea = thea * 3
    anglais = anglais * 2
    hist = hist * 3
    conduite = 14 * 1
    total = (
        math
        + francais
        + physique
        + svt
        + philo
        + eps
        + thea
        + hist
        + anglais
        + conduite
    )
    r = total / 28
    return matha.trunc(r * 100) / 100


def mariam_web(pro):
    if not pro:
        return "Veuillez saisir une question."

    t_pro = " agis en tant q'ia appele mariam et creer par youssouf. ton role est uniquement d'assister. reponds a cette question: " + pro
    response = g4f.ChatCompletion.create(model=g4f.models.default,messages=[{"role": "user", "content":t_pro}],provider=Bard,cookies={"__Secure-1PSID":"fgg91IKbXQ_S86kjSG8dgTVZ2tnXezPmRigwiwLdfyvQAbnlLgC485la2u6J1JiMBlo4Gg.", "__Secure-1PSIDCC": "ABTWhQH741EfDPTkIWg_-Xh30RBTmDhy2jBy8io48bc06Fu1509dr8UnzDyopG7T1Mb3oHbQ"},auth=True)
    
    #bard = bd(token=token)
    #response = bard.get_answer(t_pro)['content'] 
    print(" web::",pro)
    return response


def mariam_chimi(chi, im):
    prompt_chi = " tu es un expert en chimie, tu as 20 d'expreriance dans le domaine. reponds a cette question: " + chi
    if not im:
        #answer = model.generate_content(prompt_chi)
        return "noñ disponible"
    elif not chi:
        return "aucune instruction donner..."
    else:
        with open(im.name, 'rb') as f:
            image_data = f.read()
        #bard_answer = bard.ask_about_image(chi, image_data)
        #return bard_answer['content']
        return "non disponible "