kheopss commited on
Commit
9ca3549
·
verified ·
1 Parent(s): d120a15

Create main.py

Browse files
Files changed (1) hide show
  1. main.py +76 -0
main.py ADDED
@@ -0,0 +1,76 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import os
2
+
3
+ import chainlit as cl
4
+ import dotenv
5
+ from chainlit import CustomElement
6
+
7
+ from vdb import further_retrieve, split_markdown_by_section, build_documents, create_vector_index
8
+ import re
9
+
10
+ md_file = "opertgfr2.md"
11
+
12
+ sections = split_markdown_by_section(md_file)
13
+ docs = build_documents(sections)
14
+ index = create_vector_index(docs)
15
+
16
+ # Optional: save for reuse
17
+ index.storage_context.persist(persist_dir="./md_vector_store")
18
+
19
+ dotenv.load_dotenv()
20
+
21
+
22
+ @cl.set_starters
23
+ async def set_starters():
24
+ questions = [
25
+ "C'est quoi les courses et origines",
26
+ "Accès aux attributs de personnelisation du système",
27
+ "Mise sous tension/arrêt",
28
+ # "Qui signe les bon de commande pour superieur de 80000 euros pour ordinateur",
29
+ # "Qui signe les bon de commande pour tablette pour les ecoles",
30
+ # "Qui signe marchés à procédure adaptée pour 90000 euros pour des plantes",
31
+ # "Qui signe marchés à procédure adaptée pour 40000 euros",
32
+ # "qui signe les bdc a 25k pour Achat de matériel comptable",
33
+ # "Qui signe un bdc d'achat de lampadaire de rue pour 20000 euros ?",
34
+ ]
35
+
36
+ return [
37
+ cl.Starter(
38
+ label=value,
39
+ message=value
40
+ ) for value in questions
41
+ ]
42
+
43
+
44
+ @cl.on_chat_start
45
+ async def on_start():
46
+
47
+ return
48
+
49
+ """https://aqjnuiodpkwdplgeozck.supabase.co/storage/v1/object/public/faq_chunker/images/042eb615b98ba399a470268106a7319da3b4dad9e518bef62182d0e4fdc30988.png"""
50
+ @cl.on_message
51
+ async def main(message):
52
+ is_first = cl.user_session.get("is_first", True)
53
+ if is_first:
54
+ await cl.Message("", elements=[CustomElement(name="ImageGallery")]).send()
55
+ cl.user_session.set("is_first", False)
56
+ messages = cl.user_session.get("messages", [])
57
+ response = await further_retrieve(message.content, index, messages)
58
+ msg = cl.Message("")
59
+ message_response = ""
60
+ async for token in response:
61
+ message_response += token
62
+
63
+ message_response = re.sub(r"\!\[.*?\]\(images\/(.*)?\)",
64
+ # r"""<img classname="m-2 w-full" src="https://aqjnuiodpkwdplgeozck.supabase.co/storage/v1/object/public/faq_chunker/images/\1">""",
65
+ r"![](https://aqjnuiodpkwdplgeozck.supabase.co/storage/v1/object/public/faq_chunker/images/\1)",
66
+ message_response)
67
+ await msg.stream_token(message_response, is_sequence=True)
68
+ await msg.update()
69
+ messages.extend(
70
+ [
71
+ {"role": "user", "content": message.content},
72
+ {"role": "assistant", "content": message_response},
73
+ ]
74
+ )
75
+
76
+ cl.user_session.set("messages", messages)