Update main.py
Browse files
main.py
CHANGED
|
@@ -1,6 +1,7 @@
|
|
| 1 |
import os
|
| 2 |
import json
|
| 3 |
import bcrypt
|
|
|
|
| 4 |
from typing import List
|
| 5 |
from pathlib import Path
|
| 6 |
from langchain_huggingface import HuggingFaceEmbeddings
|
|
@@ -16,7 +17,7 @@ from langchain.memory import ConversationBufferMemory
|
|
| 16 |
from langchain.schema.runnable import Runnable, RunnablePassthrough, RunnableConfig, RunnableLambda
|
| 17 |
from langchain.callbacks.base import BaseCallbackHandler
|
| 18 |
from langchain.chains import (
|
| 19 |
-
StuffDocumentsChain, ConversationalRetrievalChain
|
| 20 |
)
|
| 21 |
|
| 22 |
import chainlit as cl
|
|
@@ -52,6 +53,29 @@ async def Retriever(categorie):
|
|
| 52 |
retriever = vectorstore.as_retriever(search_type="similarity_score_threshold", search_kwargs={"score_threshold": .7, "k": 250,"filter": {"title": {"$eq": "videos-table-rondeia"}, "time": {"$gte": 1320}}})
|
| 53 |
return retriever
|
| 54 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 55 |
@cl.step(type="embedding")
|
| 56 |
async def Search(input, categorie):
|
| 57 |
vectorstore = await VectorDatabase(categorie)
|
|
@@ -167,7 +191,8 @@ async def on_message(message: cl.Message):
|
|
| 167 |
|
| 168 |
await cl.Message(content=GoogleTranslator(source='auto', target='fr').translate(answer)).send()
|
| 169 |
|
| 170 |
-
|
|
|
|
| 171 |
search = await Search(message.content, "videosTC")
|
| 172 |
|
| 173 |
sources = [
|
|
|
|
| 1 |
import os
|
| 2 |
import json
|
| 3 |
import bcrypt
|
| 4 |
+
import pandas as pd
|
| 5 |
from typing import List
|
| 6 |
from pathlib import Path
|
| 7 |
from langchain_huggingface import HuggingFaceEmbeddings
|
|
|
|
| 17 |
from langchain.schema.runnable import Runnable, RunnablePassthrough, RunnableConfig, RunnableLambda
|
| 18 |
from langchain.callbacks.base import BaseCallbackHandler
|
| 19 |
from langchain.chains import (
|
| 20 |
+
StuffDocumentsChain, ConversationalRetrievalChain, create_extraction_chain
|
| 21 |
)
|
| 22 |
|
| 23 |
import chainlit as cl
|
|
|
|
| 53 |
retriever = vectorstore.as_retriever(search_type="similarity_score_threshold", search_kwargs={"score_threshold": .7, "k": 250,"filter": {"title": {"$eq": "videos-table-rondeia"}, "time": {"$gte": 1320}}})
|
| 54 |
return retriever
|
| 55 |
|
| 56 |
+
@cl.step(type="tool")
|
| 57 |
+
async def OtherRequest(answer):
|
| 58 |
+
schema = {
|
| 59 |
+
"properties": {
|
| 60 |
+
"Questions en relation avec le contexte": {"type": "string"},
|
| 61 |
+
},
|
| 62 |
+
"required": ["Questions en relation avec le contexte"],
|
| 63 |
+
}
|
| 64 |
+
llm = await LLMistral()
|
| 65 |
+
chainExtraction = create_extraction_chain(schema, llm)
|
| 66 |
+
dataframe = chainExtraction.invoke(GoogleTranslator(source='auto', target='fr').translate(answer))
|
| 67 |
+
actRequest = dataframe['text']
|
| 68 |
+
df_actRequest = pd.DataFrame(actRequest)
|
| 69 |
+
allRequest = pd.DataFrame(df_actRequest['Questions en relation avec le contexte'])
|
| 70 |
+
allRequest.drop_duplicates(keep = 'first', inplace=True)
|
| 71 |
+
allRequestArray = allRequest.values.tolist()
|
| 72 |
+
RequestArray = []
|
| 73 |
+
for act in allRequestArray:
|
| 74 |
+
RequestArray.append(cl.Starter(label=act[0], message=act[0], icon="/public/request-theme.svg",),)
|
| 75 |
+
print(RequestArray)
|
| 76 |
+
await cl.Message(content=RequestArray).send()
|
| 77 |
+
|
| 78 |
+
|
| 79 |
@cl.step(type="embedding")
|
| 80 |
async def Search(input, categorie):
|
| 81 |
vectorstore = await VectorDatabase(categorie)
|
|
|
|
| 191 |
|
| 192 |
await cl.Message(content=GoogleTranslator(source='auto', target='fr').translate(answer)).send()
|
| 193 |
|
| 194 |
+
await OtherRequest(answer)
|
| 195 |
+
|
| 196 |
search = await Search(message.content, "videosTC")
|
| 197 |
|
| 198 |
sources = [
|