Spaces:
Runtime error
Runtime error
Upload 2 files
Browse files- faq.py +46 -0
- sidebar.py +43 -0
faq.py
ADDED
|
@@ -0,0 +1,46 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# flake8: noqa
|
| 2 |
+
import streamlit as st
|
| 3 |
+
|
| 4 |
+
|
| 5 |
+
def faq():
|
| 6 |
+
st.markdown(
|
| 7 |
+
"""
|
| 8 |
+
# FAQ
|
| 9 |
+
## How does KnowledgeGPT work?
|
| 10 |
+
When you upload a document, it will be divided into smaller chunks
|
| 11 |
+
and stored in a special type of database called a vector index
|
| 12 |
+
that allows for semantic search and retrieval.
|
| 13 |
+
|
| 14 |
+
When you ask a question, KnowledgeGPT will search through the
|
| 15 |
+
document chunks and find the most relevant ones using the vector index.
|
| 16 |
+
Then, it will use GPT3 to generate a final answer.
|
| 17 |
+
|
| 18 |
+
## Is my data safe?
|
| 19 |
+
Yes, your data is safe. KnowledgeGPT does not store your documents or
|
| 20 |
+
questions. All uploaded data is deleted after you close the browser tab.
|
| 21 |
+
|
| 22 |
+
## Why does it take so long to index my document?
|
| 23 |
+
If you are using a free OpenAI API key, it will take a while to index
|
| 24 |
+
your document. This is because the free API key has strict [rate limits](https://platform.openai.com/docs/guides/rate-limits/overview).
|
| 25 |
+
To speed up the indexing process, you can use a paid API key.
|
| 26 |
+
|
| 27 |
+
## What do the numbers mean under each source?
|
| 28 |
+
For a PDF document, you will see a citation number like this: 3-12.
|
| 29 |
+
The first number is the page number and the second number is
|
| 30 |
+
the chunk number on that page. For DOCS and TXT documents,
|
| 31 |
+
the first number is set to 1 and the second number is the chunk number.
|
| 32 |
+
|
| 33 |
+
## Are the answers 100% accurate?
|
| 34 |
+
No, the answers are not 100% accurate. KnowledgeGPT uses GPT-3 to generate
|
| 35 |
+
answers. GPT-3 is a powerful language model, but it sometimes makes mistakes
|
| 36 |
+
and is prone to hallucinations. Also, KnowledgeGPT uses semantic search
|
| 37 |
+
to find the most relevant chunks and does not see the entire document,
|
| 38 |
+
which means that it may not be able to find all the relevant information and
|
| 39 |
+
may not be able to answer all questions (especially summary-type questions
|
| 40 |
+
or questions that require a lot of context from the document).
|
| 41 |
+
|
| 42 |
+
But for most use cases, KnowledgeGPT is very accurate and can answer
|
| 43 |
+
most questions. Always check with the sources to make sure that the answers
|
| 44 |
+
are correct.
|
| 45 |
+
"""
|
| 46 |
+
)
|
sidebar.py
ADDED
|
@@ -0,0 +1,43 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
import streamlit as st
|
| 2 |
+
|
| 3 |
+
from knowledge_gpt.components.faq import faq
|
| 4 |
+
from dotenv import load_dotenv
|
| 5 |
+
import os
|
| 6 |
+
|
| 7 |
+
load_dotenv()
|
| 8 |
+
|
| 9 |
+
|
| 10 |
+
def sidebar():
|
| 11 |
+
with st.sidebar:
|
| 12 |
+
st.markdown(
|
| 13 |
+
"## How to use\n"
|
| 14 |
+
"1. Enter your [OpenAI API key](https://platform.openai.com/account/api-keys) below🔑\n" # noqa: E501
|
| 15 |
+
"2. Upload a pdf, docx, or txt file📄\n"
|
| 16 |
+
"3. Ask a question about the document💬\n"
|
| 17 |
+
)
|
| 18 |
+
api_key_input = st.text_input(
|
| 19 |
+
"OpenAI API Key",
|
| 20 |
+
type="password",
|
| 21 |
+
placeholder="Paste your OpenAI API key here (sk-...)",
|
| 22 |
+
help="You can get your API key from https://platform.openai.com/account/api-keys.", # noqa: E501
|
| 23 |
+
value=os.environ.get("OPENAI_API_KEY", None)
|
| 24 |
+
or st.session_state.get("OPENAI_API_KEY", ""),
|
| 25 |
+
)
|
| 26 |
+
|
| 27 |
+
st.session_state["OPENAI_API_KEY"] = api_key_input
|
| 28 |
+
|
| 29 |
+
st.markdown("---")
|
| 30 |
+
st.markdown("# About")
|
| 31 |
+
st.markdown(
|
| 32 |
+
"📖KnowledgeGPT allows you to ask questions about your "
|
| 33 |
+
"documents and get accurate answers with instant citations. "
|
| 34 |
+
)
|
| 35 |
+
st.markdown(
|
| 36 |
+
"This tool is a work in progress. "
|
| 37 |
+
"You can contribute to the project on [GitHub](https://github.com/mmz-001/knowledge_gpt) " # noqa: E501
|
| 38 |
+
"with your feedback and suggestions💡"
|
| 39 |
+
)
|
| 40 |
+
st.markdown("Made by [mmz_001](https://twitter.com/mm_sasmitha)")
|
| 41 |
+
st.markdown("---")
|
| 42 |
+
|
| 43 |
+
faq()
|