CoolFace
Apppublic

universalsoftware/uchat

sourceHugging Facemitupdated 8mo agoView on Hugging Face
2likes
.views.py.swp74 linesDownload Raw Back to bot
1b0VIM 9.0��/f
��zoranpopovicGvozden5.local~zoranpopovic/uchat/bot/views.pyutf-8
3210#"! Utp^c#��1�Z2	Xd3W�N'aad:���:�����~/#"�
�
�
�
�
�
�
�
r
?

���$����s:�4|5t6C78�	�	�	�	�	�	z		���bF9����nQ
���~o`J,�����V<���B%��r��s_�����          self.ctx_flag = True       else:          self.ctx_flag = False       if self.cs != "None":    elif (query_results["distances"][0][i_state] < bot.uchat.min_distance):       return reply       self.ns = self.cs = "s0"       reply = "Malo je nejasno šta je problem - kako Vam još mogu pomoći?"       if len(messages)>0: messsages = messages[0]       )          metadatas=[{"used": False} for i in range(bot.uchat.collection.count())],          ids=[f"id{id}" for id in range(bot.uchat.collection.count())],       bot.uchat.collection.update(       if bot.uchat.DEBUG: print("Malo je nejasno šta je problem..")       self.ctx_flag = False    if ((query_results["distances"][0][i_state] > bot.uchat.max_distance)) and (self.cs == 'None'):  else:    return "Ne razumem, ili je u pitanju greška."    if bot.uchat.DEBUG: print("!!!###!!!")    new = reply = "Kako Vam još mogu pomoći?"    self.ctx_flag = False  if query_results["documents"][0][i_state]=="###":        o_jezik = 'makedonskom'     case 'makedonski':        o_jezik = 'srpskom'     case 'srpski':        o_jezik = 'slovenačkom'     case 'slovenački':        o_jezik = 'hrvatskom'     case 'hrvatski':  match jezik:    ctx += "."             ctx +=  ", " + context[n]          if l_state != n:       for n in range(len(context)):       ctx = context[l_state]    else:          for n in range(1,len(context)): ctx +=  ", " + context[n]       if self.cs != 'None':       ctx = query_results["documents"][0][0]        l_state = i_state = 0    if l_state<0:             i_state = n          if (query_results["metadatas"][0][n]['state'] != 'None') and (i_state<0):       else:                i_state = n             if query_results["metadatas"][0][n]['state'] != 'None':             l_state += 1          if i_state<0:          context += [ query_results["documents"][0][n] ]       if query_results["distances"][0][n] < (0.05+(bot.uchat.max_distance+bot.uchat.min_distance)/2):    for n in range(ln):    i_state = l_state = -1    context = []  else:      return new      self.ns = self.cs = "s0"      self.ctx_flag = True      new = reply = "Kako Vam još mogu pomoći?"      if len(messages)>0: messages = messages[0]      )         metadatas=[{"used": False} for i in range(bot.uchat.collection.count())],         ids=[f"id{id}" for id in range(bot.uchat.collection.count())],      bot.uchat.collection.update(      if bot.uchat.DEBUG: print("Odaberite drugi jezik")  if ln == 0:  ln = len(query_results["documents"][0])  if bot.uchat.DEBUG: print("Query results:\n", query_results, "jezik:", jezik)  )               {"lang": jezik } ] },     where = { "$and": [ {"$and": [ { "$or": [ {"state": self.cs },  { "page": { "$nin": [ -1 ] } } ] } , { "used": False } ] } ,     n_results = max_results,     query_texts = [ msg ],  query_results = bot.uchat.collection.query(  msg = query # + "Objasnite na " + jezik + ", " def get_reply(self,jezik,query,max_results,flag): oc = bot.uchat.oc previous = "" ctx_flag = True messages = context = [] reply = ctx = "" ns = cs = "s0"class chat(object): #bot.uchat.chroma_client.allow_reset = Trueimport jsonfrom django.contrib.auth.decorators import login_required, permission_requiredfrom openai import OpenAIfrom django.db import transactionimport datetimefrom django.urls import reversefrom dfrom bot.forms import RenewBotForm, EditorForm, EditorListForm, ParamForm,from bot.forms import RenewBotForm, EditorForm, EditorListForm, ParamForm, ImportFormfrom .models import Language, Query, ParamModelForm, Paramfrom django.shortcuts import renderimport bot.uchatad�	9'���>,�}D:�
�

l
M
*

��J10�������dN: �11�12�13�14�1516~17##@permission_r##@permission_required('catalog.can_mark_returned', raise_exception=True)##@login_required    model = Languageclass BotViewDetail(generic.DetailView):        last = bot.uchat.last    paginate_by = 5    model = Language     if bot.uchat.DEBUG: print ("Test!")    """View for a bot chat."""class BotView(generic.ListView):from django.views import generic       )                }                   'selected_mk': selected(jezik,'makedonski'),                   'selected_sr': selected(jezik,'srpski'),                   'selected_sl': selected(jezik,'slovenački'),                   'selected_hr': selected(jezik,'hrvatski'),                   'answer': answer,          context = {'path': path,          'index_import.html',          request,       return render(       answer = request.session.get('answer','')       path = request.session.get('path','/Users/profile/...')       jezik = request.session.get('jezik','srpski')    else:       return HttpResponseRedirect(reverse('importpdf'))             request.session['answer'] = "Došlo je do problema sa importom PDF fajla."             if bot.uchat.DEBUG: print("Došlo je do problema sa importom PDF fajla.")          except:             request.session['answer'] = f"Importovano {l_last} delova PDF dokumenta."             l_last = bot.uchat.last - l_last             bot.uchat.load_docs(path, jezik)          try:ad^N��\ ���:�
�
�
c
3

	
���}W1���V(�18�19�20N2122�	�	~	H		��h>(���O��q ��L��t/���@�����nG,���^^          l_last = bot.uchat.last          request.session['path'] = path          request.session['jezik'] = jezik          jezik = form.cleaned_data['jezik']          path = form.cleaned_data['path']       if form.is_valid():       form = ImportForm(request.POST)    if request.method == "POST":def importPdf(request):        )                }                   'selected_mk': selected(jezik,'makedonski'),                   'selected_sr': selected(jezik,'srpski'),                   'selected_sl': selected(jezik,'slovenački'),                   'selected_hr': selected(jezik,'hrvatski'),                   'DEBUG': bot.uchat.DEBUG,                   'presence_penalty': bot.uchat.presence_penalty,                   'frequency_penalty': bot.uchat.frequency_penalty,                   'top_p': bot.uchat.top_p,                   'max_tokens': bot.uchat.max_tokens,                   'temperature': bot.uchat.temperature,                   'max_distance': bot.uchat.max_distance,                   'min_distance': bot.uchat.min_distance,                   'max_conv': bot.uchat.max_conv,                   'model_id': bot.uchat.model_id,         # model_id = "Yugo60-GPT-GGUF.Q4_K_M.gguf"                   'EMBED_MODEL': bot.uchat.EMBED_MODEL,   # "all-MiniLM-L6-v2",                   'max_results': bot.uchat.max_results,                   'CHUNK_OVERLAP': bot.uchat.CHUNK_OVERLAP,                   'CHUNK_SIZE': bot.uchat.CHUNK_SIZE,                   'min_len': bot.uchat.min_len,                   'msg_content': bot.uchat.msg_content[jezik],                   'ctrpre': bot.uchat.ctxpre,          context = {'system': bot.uchat.system[jezik],          'index_params.html',          request,       return render(             bot.uchat.DEBUG = edit.DEBUG             bot.uchat.frequency_penalty = edit.frequency_penalty             bot.uchat.presence_penalty = edit.presence_penalty             bot.uchat.max_tokens = edit.max_tokens             bot.uchat.top_p = edit.top_p             bot.uchat.temperature = edit.temperature             bot.uchat.max_conv = edit.max_conv             bot.uchat.max_distance = edit.max_distance             bot.uchat.min_distance = edit.min_distance             bot.uchat.model_id = edit.model_id             bot.uchat.EMBED_MODEL = edit.EMBED_MODEL             bot.uchat.max_results = edit.max_results             bot.uchat.CHUNK_OVERLAP = edit.CHUNK_OVERLAP             bot.uchat.CHUNK_SIZE = edit.CHUNK_SIZE             bot.uchat.min_len = edit.min_len             bot.uchat.msg_content[jezik] = edit.msg_content             bot.uchat.ctxpre = edit.ctxpre             bot.uchat.system[jezik] = edit.system          if edit.jezik == jezik:       for edit in edit_all:       edit_all = Param.objects.all()       if jezik == '': jezik='srpski'       jezik = request.session.get('jezik','srpski')    else:       return HttpResponseRedirect(reverse('params'))          mform.save()       else:                 edit.save()                 edit.ctxpre = bot.uchat.ctxpre                 edit.msg_content = bot.uchat.msg_content[jezik]                 edit.jezik = jezik                 edit.DEBUG = bot.uchat.DEBUG                 edit.presence_penalty = bot.uchat.presence_penalty                 edit.frequency_penalty = bot.uchat.frequency_penalty                 edit.top_p = bot.uchat.top_p                 edit.max_tokens = bot.uchat.max_tokens                 edit.temperature = bot.uchat.temperature                 edit.max_distance = bot.uchat.max_distance                 edit.min_distance = bot.uchat.min_distance                 edit.max_conv = bot.uchat.max_conv                 edit.model_id = bot.uchat.model_idad�U^���tR8�������x_N?,�
�
�
~
`
���e;-���6.�23�24�25�26q27i28X29=30%31�	�	l	R	
	���weH����kP)�����mU5���YQ���f���>32���tU          self.ctx_flag = True       else:          self.ctx_flag = False       if self.cs != "None":    elif (query_results["distances"][0][i_state] < bot.uchat.min_distance):       return reply       self.ns = self.cs = "s0"       reply = "Malo je nejasno šta je problem - kako Vam još mogu pomoći?"       if len(messages)>0: messsages = messages[0]       )          metadatas=[{"used": False} for i in range(bot.uchat.collection.count())],          ids=[f"id{id}" for id in range(bot.uchat.collection.count())],       bot.uchat.collection.update(       if bot.uchat.DEBUG: print("Malo je nejasno šta je problem..")       self.ctx_flag = False    if ((query_results["distances"][0][i_state] > bot.uchat.max_distance)) and (self.cs == 'None'):  else:    return "Ne razumem, ili je u pitanju greška."    if bot.uchat.DEBUG: print("!!!###!!!")    new = reply = "Kako Vam još mogu pomoći?"    self.ctx_flag = False  if query_results["documents"][0][i_state]=="###":        o_jezik = 'makedonskom'     case 'makedonski':        o_jezik = 'srpskom'     case 'srpski':        o_jezik = 'slovenačkom'     case 'slovenački':        o_jezik = 'hrvatskom'     case 'hrvatski':  match jezik:    ctx += "."             ctx +=  ", " + context[n]          if l_state != n:       for n in range(len(context)):       ctx = context[l_state]    else:          for n in range(1,len(context)): ctx +=  ", " + context[n]       if self.cs != 'None':       ctx = query_results["documents"][0][0]        l_state = i_state = 0    if l_state<0:             i_state = n          if (query_results["metadatas"][0][n]['state'] != 'None') and (i_state<0):       else:                i_state = n             if query_results["metadatas"][0][n]['state'] != 'None':             l_state += 1          if i_state<0:          context += [ query_results["documents"][0][n] ]       if query_results["distances"][0][n] < (0.05+(bot.uchat.max_distance+bot.uchat.min_distance)/2):    for n in range(ln):    i_state = l_state = -1    context = []  else:      return new      self.ns = self.cs = "s0"      self.ctx_flag = True      new = reply = "Kako Vam još mogu pomoći?"      if len(self.messages)>0: self.messages = self.messages[0]      )         metadatas=[{"used": False} for i in range(bot.uchat.collection.count())],         ids=[f"id{id}" for id in range(bot.uchat.collection.count())],      bot.uchat.collection.update(      if bot.uchat.DEBUG: print("Odaberite drugi jezik")  if ln == 0:  ln = len(query_results["documents"][0])  if bot.uchat.DEBUG: print("Query results:\n", query_results, "jezik:", jezik)  )               {"lang": jezik } ] },     where = { "$and": [ {"$and": [ { "$or": [ {"state": self.cs },  { "page": { "$nin": [ -1 ] } } ] } , { "used": False } ] } ,     n_results = max_results,     query_texts = [ msg ],  query_results = bot.uchat.collection.query(  msg = query # + "Objasnite na " + jezik + ", " def get_reply(self,jezik,query,max_results,flag): oc = bot.uchat.oc previous = "" ctx_flag = True messages = context = [] reply = ctx = "" ns = cs = "s0"class chat(object): #bot.uchat.chroma_client.allow_reset = Trueimport jsonfrom django.contrib.auth.decorators import login_required, permission_requiredfrom openai import OpenAIfrom django.db import transactionimport datetimefrom django.urls import reversefrom django.http import HttpResponseRedirectfrom django.shortcuts import get_object_or_404ad_	�	���j#��X�
�
v

��sf'��Y3�33�34�35_36(37�	�	�	o	�	>			�b���S	S��uW(�^R����N���vc=���rD���Q`    #          max_tokens=bot.uchat.max_tokens,    #          temperature=bot.uchat.temperature,    #          messages=self.messages,    #          model = bot.uchat.model_id,    #       completion = bot.uchat.oc.chat.completions.create(    #       self.messages.append(new_message)    #       new_message = {"role": "user", "content": f"Napiši to na {o_jezik} jeziku."}    #   case _ :    #       pass    #   case 'srpskom':    #match o_jezik:    # Prevođenje na druge jezike:    self.messages.append(new_message)       new = reply       new_message["content"] = reply       new_message = {"role": "assistant", "content": ""}    else:          if bot.uchat.DEBUG: print(new, end="", flush=True)          self.previous = new_message["content"]          new_message["content"] += completion.choices[0].message.content       else:          self.messages = self.messages[0]          self.ns = self.cs = "s0"          new_message["content"] = new = self.previous = reply = "Kako Vam još mogu pomoći?"          )             metadatas=[{"used": False} for i in range(bot.uchat.collection.count())],             ids=[f"id{id}" for id in range(bot.uchat.collection.count())],          bot.uchat.collection.update(          if bot.uchat.DEBUG: print("Same!!!")       if new==self.previous:       new=completion.choices[0].message.content       new_message = {"role": "assistant", "content": ""}       if bot.uchat.DEBUG: print('msg=' +          stop=["###","<|im_end|","|im_start|"],          presen                   stop=["###","<|im_end|","|im_start|"],          presence_penalty=bot.uchat.presence_penalty,                    stop=["###","<|im_end|","|i          stop=["###","<|im_end|","|im_start|"],          presence_penalty=bot.uchat.presence_penalty,          freque          stop=["###","<|im_end|","|im_start|"],          presence_penalty=bot.ucha          stop=["###","<|im_end|","|im_start|"],          presence_penalty=bot.uch          stop=["###","<|im_end|","|im_start|"],              stop=["###","<|im_end|","|im_start|"],          stop=["###","<|im_end|","|im_start|"],          presence_penalty=bot.uchat.presence_penalty,                        st            stop=["###","<|","|im_end|","|im_start|"],          presence_penalty=bot.uchat.presence_penalty,          frequency_penalty=bot.uchat.frequency_penalty,          top_p=bot.uchat.top_p,          max_tokens=bot.uchat.max_tokens,          temperature=bot.uchat.temperature,          messages=self.messages,          model = bot.uchat.model_id,       completion = bot.uchat.oc.chat.completions.create(    if query_results["distances"][0][i_state] > bot.uchat.min_distance:    print("messages=", self.messages)    self.messages.append(new_message)          new_message = {"role": "user", "content": f"{msg}."}       else:          new_message = {"role": "user", "content": f"{msg}. " + bot.uchat.msg_content[jezik] + " " + ctx + ". "}       if self.ctx_flag:    else:       new_message = {"role": "user", "content": f"{msg} " + bot.uchat.msg_content[jezik] + " " + ctx + ". "}       self.messages = [ {"role": "system", "content": bot.uchat.system[jezik]} ]    if self.messages==[]:    self.ns = query_results["metadatas"][0][i_state]["next"]    bot.uchat.collection.update( ids=id, metadatas=meta)    if (meta[i_state]["state"] not in ['','s99']): meta[0]["used"] = True    # ovo treba usloviti potrebnom input var ako treba    meta = query_results["metadatas"][0]    id = query_results["ids"][0]    if (len(msg) < bot.uchat.min_len/4) or flag: self.ctx_flag = False       # reply=query_results["documents"][0][i_state]       self.ctx_flag = True    else:       new = reply=query_results["documents"][0][i_state]ad���`F#��v\,�
�
�
�
�
�
�
�
�
q
E
����X@������|+38�39�40m41$42�	�	�	j	+	���n2��b7��E���;����L���rE.���m.�������def reset(request):    )                }                 'selected_mk': selected(jezik,'makedonski'),                 'selected_sr': selected(jezik,'srpski'),                 'selected_sl': selected(jezik,'slovenački'),                 'selected_hr': selected(jezik,'hrvatski'),                 'reply': reply,                 'num_visits': num_visits,        context={        'index.html',        request,        return render(            request.session['messages'] = []        else:            request.session['messages'] = chat_inat.messages        if len(chat_inst.messages)>0:        jezik = request.session.get('jezik','srpski')        query = request.session.get('query','...')        form = RenewBotForm(initial={'query': 'Neki upit:'})    else:           if bot.uchat.DEBUG: print("Invalid form!", form.errors)        else:           return HttpResponseRedirect('/bot')#           q = QueryForm(request.POST)           request.session['replies'] = reply + "\nKorisnik: " + query + "\n\nOdgovor: " + new_reply + "\n"              new_reply = chat_inst.get_reply(jezik, query, nr, False)           else:              new_reply = chat_inst.get_reply(jezik, query, nr, True)           if bot.uchat.max_conv < len(chat_inst.messages):           #    chat_inst.messages = request.session['messages']           #    request.session['messages'] = chat_inst.messages if num_visits % 2 == 1 else chat_inst.messages[0:0]           #iif len(chat_inst.messages)>0:           nr =  bot.uchat.max_results if num_visits < bot.uchat.max_results else 1+(num_visits % 2)              request.session['jezik'] = jezik              chat_inst.cs = request.session.get('cs','s0')              chat_inst.ns = request.session.get('ns','s0')              chat_inst.messages = request.session.get('messages',[])           else:              request.session['cs'] = chat_inst.cs              request.session['ns'] = chat_inst.ns              request.session['messages'] = chat_inst.messages           if request.session.get('messages',[])==[]:           request.session['jezik'] = jezik           if jezik=="": jezik = 'srpski'           jezik = form.cleaned_data['jezik']           request.session['query'] = query = form.cleaned_data['query']        if form.is_valid():        form = RenewBotForm(request.POST)        # Create a form instance and populate it with data from the request (binding):    if request.method == 'POST':    reply = request.session.get("replies", "Zdravo, kako Vam mogu pomoći?")            if bot.uchat.DEBU        i        if bot.uc        if b           if b        if bot.uchat.DE        if bot.uchat.DEBUG: print("Debug: ")    i        if bot.uchat.DEBUG: print("Debug: ")    if num_visits == 0:    num_visits = request.session.get('num_visits', 1)    jezik = request.session.get('jezik', 'srpski')    request.session.set_expiry(300)    chat_inst = chat()    # Number of visits to this view, as counted in the session variable.    #num_books = Book.objects.all().count()def index(request):       return ' '    else:       return 'selected'    if jez==str:def selected(jez,str):  return new  if self.cs=='None': self.cs='s0' ; self.ctx_flag = False      if (self.ns != self.cs): self.cs=self.ns     if (self.ns!='None'):    #       self.messages.append(new_message)    #       new_message = {"role": "user", "content": new}    #       new=completion.choices[0].message.content    #       )    #          #   do_sample=True,    #          stop=None,    #          presence_penalty=bot.uchat.presence_penalty,    #          frequency_penalty=bot.uchat.frequency_penalty,    #          top_p=bot.uchat.top_p,ad
�Z����-�y]7$�
�
�
b
#
�����yfE���sf	�43�4445o46>47148�	�	�	�	L	<			���q=3���k<����hX���y`F���_��O�j]A���               documents = bot.uchat.collection.get(ids=[f'id{f_id}'], where=meta)['documents']               ids = bot.uchat.collection.get(ids=[f'id{f_id}'], where=meta)['ids']           if f_docu == "":       else:               states = bot.uchat.collection.get(where=meta, where_document={"$contains": f_docu })['metadatas']               documents = bot.uchat.collection.get(where=meta, where_document={"$contains": f_docu })['documents']               ids = bot.uchat.collection.get(where=meta, where_document={"$contains": f_docu })['ids']           else:               states = bot.uchat.collection.get(where=meta)['metadatas']               documents = bot.uchat.collection.get(where=meta)['documents']               ids = bot.uchat.collection.get(where=meta)['ids']           if f_docu =="":       if f_id == "":              meta = { "$and": [ meta, {"lang": f_jezik} ] }           else:              meta = {"lang": f_jezik}           if meta == {}:       if f_jezik != "":              meta = { "$and": [ meta , {"page": f_page} ] }          else:              meta = {"page": f_page}          if meta == {}:       if f_page !="":              meta = { "$and": [ meta, {"next": f_next} ] }          else:              meta = {"next": f_next}          if meta == {}:       if f_next != "":              meta = {"state": f_state}       if f_state != "":       meta = {}       f_id = request.session.get('id','')       f_docu = request.session.get('docu','')       f_page = request.session.get('page','')       f_next = request.session.get('next','')       f_state = request.session.get('state','')       f_jezik = jezik = request.session.get('jezik','')    else:        return HttpResponseRedirect(reverse('bot'))           request.session['docu'] = f_docu = ""        except:           request.session['docu'] = f_docu = form.cleaned_data['f_docu']        try:           request.session['jezik'] = f_jezik = ""        except:           request.session['jezik'] = f_jezik = form.cleaned_data['f_jezik']        try:           request.session['page'] = f_page = ""        except:           request.session['page'] = f_page = form.cleaned_data['f_page']        try:           request.session['next'] = f_next = ""        except:           request.session['next'] = f_next = form.cleaned_data['f_next']        try:           request.session['state'] = f_state = ""        except:           request.session['state'] = f_state = form.cleaned_data['f_state']        try:           request.session['id'] = f_id = ""        except:           request.session['id'] = f_id = form.cleaned_data['f_id']        try:        form.is_valid()        form = EditorListForm(request.POST)    if request.method == "POST":    #pagesize = 10def editor(request):        )                }                 'selected_mk': selected(jezik,'makedonski'),                 'selected_sr': selected(jezik,'srpski'),                 'selected_sl': selected(jezik,'slovenački'),                 'selected_hr': selected(jezik,'hrvatski'),                   'reply': 'Kako Vam mogu još pomoći?',        context = {'num_visits': 0,        'index.html',        request,    return render(    request.session['num_visits'] = 0    request.session.flush()    jezik = request.session.get('jezik','srpski')    for id in ids: bot.uchat.collection.update(ids=[id], metadatas=[{'used': False}])    ids = bot.uchat.collection.get()['ids']    bot.uchat.oc = oc = OpenAI(base_url="http://localhost:4891/v1", api_key="not-needed")    chat().oc.close()    chat().ns = "s0"    chat().cs = "s0"    chat().messages = request.session.get('messages',[])ad"�X����
�
�
�
�
u
a
A
���s_?���b#�49�50�51g52D53!54�	�	�	�	�	�	�	]	J	5			������\@��vI������vO;���wG����9��zf&����            if bot.uchat.DEBUG: print("Invalid form!", form.errors)        else:              return HttpResponseRedirect(reverse('bot'))              if bot.uchat.DEBUG: print("Errors:", form.errors)            except:                  return HttpResponseRedirect(reverse('bot'))                  bot.uchat.last -= 1                  bot.uchat.collection.delete(ids = f'id{pk}')               elif pk2==2:                  return HttpResponseRedirect(reverse('bot')+f'{new}/0')                      bot.uchat.last += 1                      )                          documents = docu                          metadatas = meta,                          ids = f'id{new}',                      bot.uchat.collection.add(                      new = get_id(bot.uchat.collection)                  if bot.uchat.last>1:               elif pk2==1:                  return HttpResponseRedirect(reverse('bot')+f'{pk}/0')                  )                      documents = docu                      metadatas = meta,                      ids = f'id{pk}',                  bot.uchat.collection.update(               if pk2==0:            try:            meta = {'state': state, 'next': next, 'used': used, 'page': page, 'source': source, 'lang': jezik}            #request.session['jezik'] = jezik            jezik = form.cleaned_data['jezik']            source = form.cleaned_data['source']            docu = form.cleaned_data['docu']            page = form.cleaned_data['page']            used = json.loads(form.cleaned_data['used'].lower())            next = form.cleaned_data['next']            state = form.cleaned_data['state']            id = form.cleaned_data['id'][2:]        if form.is_valid():        form = EditorForm(request.POST)    if request.method == "POST":    page = -1    used = False    state = next = uris = ""    last = bot.uchat.lastdef editor_id(request, pk, pk2):    return coll.count()            return i        if id==[]:        id = coll.get(ids=f'id{i}')['ids']    for i in range(coll.count()):def get_id(coll):        )                }                 'f_jezik': f_jezik,                 'f_docu': f_docu,                 'f_page': f_page,                 'f_next': f_next,                 'f_state': f_state,                 'f_id': f_id,                 'selected_mk': selected(jezik,'makedonski'),                 'selected_sr': selected(jezik,'srpski'),                 'selected_sl': selected(jezik,'slovenački'),                 'selected_hr': selected(jezik,'hrvatski'),                 'id': "",                 'documents': documents,                 'id_docs': id_docs,           context = {'last': bot.uchat.last, 'nr': nr,           'index_editor.html',           request,       return render(       id_docs.sort(key=lambda k: eval(k[0][2:]))            cnt += 1            id_docs += [ [ids[cnt], states[cnt]['state'], states[cnt]['next'], states[cnt]['page'], lang, doc] ]                lang = "srpski"            except:                lang = states[cnt]['lang']            try:       for doc in documents:       id_docs = []       nr = len(documents)       cnt = 0               states = bot.uchat.collection.get(ids=[f'id{f_id}'], where=meta, where_document={"$contains": f_docu })['metadatas']               documents = bot.uchat.collection.get(ids=[f'id{f_id}'], where=meta, where_document={"$contains": f_docu })['documents']               ids = bot.uchat.collection.get(ids=[f'id{f_id}'], where=meta, where_document={"$contains": f_docu })['ids']           else:               states = bot.uchat.collection.get(ids=[f'id{f_id}'], where=meta)['metadatas']ad	}W���g7	���UI�
�
�
�
P
/

����u9���pfeH'�55�56w57m58759660!6162�	�	�	m	A	5		��whH<����k0��e"��c��c�|m1���g/��}|                 edit.EMBED_MODEL = bot.uchat.EMBED_MODEL                 edit.max_results = bot.uchat.max_results                 edit.CHUNK_OVERLAP = bot.uchat.CHUNK_OVERLAP                 edit.CHUNK_SIZE = bot.uchat.CHUNK_SIZE                 edit.min_len = bot.uchat.min_len                 edit.system = bot.uchat.system[jezik]              if edit.jezik == jezik:          for edit in edit_all:       if jezik in jezici:          if bot.uchat.DEBUG: print("Errors:", form.errors)       except:          bot.uchat.DEBUG = json.loads(form.cleaned_data['DEBUG'].lower())          bot.uchat.presence_penalty = form.cleaned_data['presence_penalty']          bot.uchat.frequency_penalty = form.cleaned_data['frequency_penalty']          bot.uchat.top_p = form.cleaned_data['top_p']          bot.uchat.max_tokens = form.cleaned_data['max_tokens']          bot.uchat.temperature = form.cleaned_data['temperature']          bot.uchat.max_distance = form.cleaned_data['max_distance']          bot.uchat.min_distance = form.cleaned_data['min_distance']          bot.uchat.max_conv = form.cleaned_data['max_conv']          bot.uchat.model_id = form.cleaned_data['model_id']          bot.uchat.EMBED_MODEL = form.cleaned_data['EMBED_MODEL']          bot.uchat.max_results = form.cleaned_data['max_results']          bot.uchat.CHUNK_OVERLAP = form.cleaned_data['CHUNK_OVERLAP']          bot.uchat.CHUNK_SIZE = form.cleaned_data['CHUNK_SIZE']          bot.uchat.min_len = form.cleaned_data['min_len']          bot.uchat.system[jezik] = form.cleaned_data['system']       try:          bot.uchat.msg_content[jezik] = ""       except:          bot.uchat.msg_content[jezik] = form.cleaned_data['msg_content']       try:          bot.uchat.ctxpre = ""       except:          bot.uchat.ctxpre = form.cleaned_data['ctxpre']          jezik = request.session["jezik"]          request.session["jezik"] = form.cleaned_data['jezik']          form.is_valid()       try:       mform = ParamModelForm(request.POST)       for edit in edit_all: jezici += [edit.jezik]       edit_all = Param.objects.all()       jezici = []       form = ParamForm(request.POST)    if request.method == "POST":def params(request):       return HttpResponseRedirect(reverse('params'))    else:       return HttpResponseRedirect(reverse('params'))       request.session["jezik"] = form.cleaned_data['jezik']       form.is_valid()       form = ParamForm(request.POST)    if request.method == "POST":def params_refresh(request):        )                }                 'selected_mk': selected(jezik,'makedonski'),                 'selected_sr': selected(jezik,'srpski'),                 'selected_sl': selected(jezik,'slovenački'),                 'selected_hr': selected(jezik,'hrvatski'),                 'id': pk,                 'source': source,                 'docu': docu,                 'page': page,                 'used': used,                 'next': next,                 'state': state,           context = {'last': bot.uchat.last, 'nr': "",           'index_editor.html',           request,       return render(           jezik = request.session.get('jezik','srpski')       except:           jezik = doc['metadatas'][0]['lang']       try:           source = doc['metadatas'][0]['source']           docu = doc['documents'][0]           page = doc['metadatas'][0]['page']           used = doc['metadatas'][0]['used']           next = doc['metadatas'][0]['next']           state = doc['metadatas'][0]['state']           doc = bot.uchat.collection.get(ids=[f'id{pk}'])       if last>0:    else:            return HttpResponseRedirect(reverse('bot')+f'{pk}/0')ad7	�	#��j0����?�
�
}
Z
/
"
��j`&����xgV�63�64�65d66=6768�	        #          max_tokens=bot.uchat.max_tokens,    #          temperature=bot.uchat.temperature,    #          messages=self.messages,    #          model = bot.uchat.model_id,    #       completion = bot.uchat.oc.chat.completions.create(    #       self.messages.append(new_message)    #       new_message = {"role": "user", "content": f"Napiši to na {o_jezik} jeziku."}    #   case _ :    #       pass    #   case 'srpskom':    #match o_jezik:    # Prevođenje na druge jezike:    self.messages.append(new_message)       new = reply       new_message["content"] = reply       new_message = {"role": "assistant", "content": ""}    else:          if bot.uchat.DEBUG: print(new, end="", flush=True)          self.previous = new_message["content"]          new_message["content"] += completion.choices[0].message.content       else:          self.messages = self.messages[0]          self.ns = self.cs = "s0"          new_message["content"] = new = self.previous = reply = "Kako Vam još mogu pomoći?"          )             metadatas=[{"used": False} for i in range(bot.uchat.collection.count())],             ids=[f"id{id}" for id in range(bot.uchat.collection.count())],          bot.uchat.collection.update(          if bot.uchat.DEBUG: print("Same!!!")       if new==self.previous:       new=completion.choices[0].message.content       new_message = {"role": "assistant", "content": ""}       if bot.uchat.DEBUG: print('msg=' + new_message['content'] + "\nMessages:\n", self.messages, flush=True)       )          #   do_sample=True,ad��1��a69��{M!�
�

��g+���Q!�70�71]72$7374�	�	�	Y	#	����jYC1��j0������T��`)def reset(request):    )                }          def reset(request):    )                }                 'sdef reset(request):    )                }       def reset(request):    )                }       def reset(request)def reset(request):    )                }            ddef reset(request):    )                }           def reset(request):    )                }            def reset(request):    )                }                 'selected_mk': selected(jezik,'makedonski'),                 'selected_sr': selected(jezik,'srpski'),                 'selected_sl': selected(jezik,'slovenački'),                 'selected_hr': selected(jezik,'hrvatski'),                 'reply': reply,                 'num_visits': num_visits,        context={        'index.html',        request,        return render(        #    request.session['messages'] = []        #else:        #    request.session['messages'] = chat_inat.messages        #if len(chat_inst.messages)>0:        jezik = request.session.get('jezik','srpski')        query = request.session.get('query','...')        form = RenewBotForm(initial={'query': 'Neki upit:'})    else:           if bot.uchat.DEBUG: print("Invalid form!", form.errors)        else:           return HttpResponseRedirect(reverse("index"))#           q = QueryForm(request.POST)           request.session['replies'] = reply + "\nKorisnik: " + query + "\n\nOdgovor: " + new_reply + "\n"           request.session['cs'] = chat_inst.cs           request.session['ns'] = chat_inst.ns           request.session['messages'] = chat_inst.messages              new_reply = chat_inst.get_reply(jezik, query, nr, False)           else:              new_reply = chat_inst.get_reply(jezik, query, nr, True)           if bot.uchat.max_conv < len(chat_inst.messages):           chat_inst.ns = request.session.get('ns','s0')           chat_inst.cs = request.session.get('cs','s0')           chat_inst.messages = request.session.get('messages',[])           #    request.session['messages'] = chat_inst.messages if num_visits % 2 == 1 else chat_inst.messages[0:0]           #iif len(chat_inst.messages)>0:           nr =  bot.uchat.max_results if num_visits < bot.uchat.max_results else 1+(num_visits % 2)           request.session['jezik'] = jezik           jezik = form.cleaned_data['jezik']           request.session['query'] = query = form.cleaned_data['query']        if form.is_valid():        form = RenewBotForm(request.POST)        # Create a form instance and populate it with data from the request (binding):    if request.method == 'POST':    reply = request.session.get("replies", "Zdravo, kako Vam mogu pomoći?")    request.session['num_visits'] = num_visits+1