naotakigawa commited on
Commit
82ce806
·
1 Parent(s): 178b25e

Upload 3 files

Browse files
pages/Chatbot.py ADDED
@@ -0,0 +1,77 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+
2
+ import streamlit as st
3
+ import os
4
+ import pickle
5
+ import faiss
6
+ import logging
7
+
8
+ from multiprocessing import Lock
9
+ from multiprocessing.managers import BaseManager
10
+ from llama_index.callbacks import CallbackManager, LlamaDebugHandler
11
+ from llama_index import VectorStoreIndex, Document,Prompt, SimpleDirectoryReader, ServiceContext, StorageContext, load_index_from_storage
12
+ from llama_index.chat_engine import CondenseQuestionChatEngine;
13
+ from llama_index.node_parser import SimpleNodeParser
14
+ from llama_index.langchain_helpers.text_splitter import TokenTextSplitter
15
+ from llama_index.constants import DEFAULT_CHUNK_OVERLAP
16
+ from llama_index.response_synthesizers import get_response_synthesizer
17
+ from llama_index.vector_stores.faiss import FaissVectorStore
18
+ from llama_index.graph_stores import SimpleGraphStore
19
+ from llama_index.storage.docstore import SimpleDocumentStore
20
+ from llama_index.storage.index_store import SimpleIndexStore
21
+ import tiktoken
22
+ from logging import getLogger, StreamHandler, Formatter
23
+
24
+ import common
25
+
26
+ index_name = "./data/storage"
27
+ pkl_name = "./data/stored_documents.pkl"
28
+
29
+ custom_prompt = Prompt("""\
30
+ 以下はこれまでの会話履歴と、ドキュメントを検索して回答する必要がある、ユーザーからの会話文です。
31
+ 会話と新しい会話文に基づいて、検索クエリを作成します。回答は日本語で行います。
32
+ 新しい会話文が挨拶の場合、挨拶を返してください。
33
+ 新しい会話文が質問の場合、検索した結果の回答を返してください。
34
+ 答えがわからない場合は正直にわからないと回答してください。
35
+ 会話履歴:
36
+ {chat_history}
37
+ 新しい会話文:
38
+ {question}
39
+ Search query:
40
+ """)
41
+
42
+ # # list of (human_message, ai_message) tuples
43
+ custom_chat_history = [
44
+ (
45
+ 'こんにちは、アシスタント。これから質問に答えて下さい。',
46
+ 'こんにちは。了解しました。'
47
+ )
48
+ ]
49
+ chat_history = []
50
+
51
+ logging.basicConfig(level=logging.INFO)
52
+ logger = logging.getLogger("__name__")
53
+ logger.debug("調査用ログ")
54
+
55
+ common.check_login()
56
+
57
+ st.title("💬 Chatbot")
58
+ if "messages" not in st.session_state:
59
+ st.session_state["messages"] = [{"role": "assistant", "content": "お困りごとはございますか?"}]
60
+
61
+ for msg in st.session_state.messages:
62
+ st.chat_message(msg["role"]).write(msg["content"])
63
+
64
+ if prompt := st.chat_input():
65
+ st.session_state.messages.append({"role": "user", "content": prompt})
66
+ st.chat_message("user").write(prompt)
67
+ response = st.session_state.chat_engine.chat(prompt)
68
+ # response = openai.ChatCompletion.create(model="gpt-3.5-turbo", messages=st.session_state.messages)
69
+ msg = str(response)
70
+ st.session_state.messages.append({"role": "assistant", "content": msg})
71
+ st.chat_message("assistant").write(msg)
72
+
73
+ if st.button("リセット",use_container_width=True):
74
+ st.session_state.chat_engine.reset()
75
+ st.session_state.messages = [{"role": "assistant", "content": "お困りごとはございますか?"}]
76
+ logger.info("reset")
77
+
pages/ChatbotWebRead.py CHANGED
@@ -19,6 +19,8 @@ from llama_index import ListIndex, SimpleWebPageReader,TrafilaturaWebReader
19
  import tiktoken
20
  from logging import getLogger, StreamHandler, Formatter
21
 
 
 
22
  custom_prompt = Prompt("""\
23
  以下はこれまでの会話履歴と、ドキュメントを検索して回答する必要がある、ユーザーからの会話文です。
24
  会話と新しい会話文に基づいて、検索クエリを作成します。回答は日本語で行います。
@@ -39,6 +41,8 @@ logger = logging.getLogger("__name__")
39
  logger.debug("調査用ログ")
40
 
41
 
 
 
42
  st.title("💬 ChatbotWebRead")
43
  if "webmessages" not in st.session_state:
44
  st.session_state["webmessages"] = [{"role": "assistant", "content": "お困りごとはございますか?"}]
 
19
  import tiktoken
20
  from logging import getLogger, StreamHandler, Formatter
21
 
22
+ import common
23
+
24
  custom_prompt = Prompt("""\
25
  以下はこれまでの会話履歴と、ドキュメントを検索して回答する必要がある、ユーザーからの会話文です。
26
  会話と新しい会話文に基づいて、検索クエリを作成します。回答は日本語で行います。
 
41
  logger.debug("調査用ログ")
42
 
43
 
44
+ common.check_login()
45
+
46
  st.title("💬 ChatbotWebRead")
47
  if "webmessages" not in st.session_state:
48
  st.session_state["webmessages"] = [{"role": "assistant", "content": "お困りごとはございますか?"}]
pages/ImportFile.py CHANGED
@@ -11,8 +11,10 @@ from llama_index import Prompt, SimpleDirectoryReader
11
 
12
  from logging import getLogger, StreamHandler, Formatter
13
 
14
- index_name = "./storage"
15
- pkl_name = "stored_documents.pkl"
 
 
16
 
17
  custom_prompt = Prompt("""\
18
  以下はこれまでの会話履歴と、ドキュメントを検索して回答する必要がある、ユーザーからの会話文です。
@@ -33,6 +35,8 @@ logging.basicConfig(level=logging.INFO)
33
  logger = logging.getLogger("__name__")
34
  logger.debug("調査用ログ")
35
 
 
 
36
  if "file_uploader_key" not in st.session_state:
37
  st.session_state["file_uploader_key"] = 0
38
 
 
11
 
12
  from logging import getLogger, StreamHandler, Formatter
13
 
14
+ import common
15
+
16
+ index_name = "./data/storage"
17
+ pkl_name = "./data/stored_documents.pkl"
18
 
19
  custom_prompt = Prompt("""\
20
  以下はこれまでの会話履歴と、ドキュメントを検索して回答する必要がある、ユーザーからの会話文です。
 
35
  logger = logging.getLogger("__name__")
36
  logger.debug("調査用ログ")
37
 
38
+ common.check_login()
39
+
40
  if "file_uploader_key" not in st.session_state:
41
  st.session_state["file_uploader_key"] = 0
42