Spaces:
Runtime error
Runtime error
File size: 3,290 Bytes
6a14bdd a932599 6a14bdd 7ceb372 6a14bdd 7ceb372 6a14bdd 7ef75a6 8cec761 1b53a94 8cec761 a932599 6a14bdd 7ef75a6 6a14bdd 22d696c 6a14bdd a932599 6a14bdd 22d696c a932599 6a14bdd a932599 042ff79 6a14bdd a932599 6a14bdd a932599 6a14bdd |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 |
#Manual Q&A bot powered by chatGPT plus langchain.ipynb
#
#reference:
#https://blog.devgenius.io/chat-with-document-s-using-openai-chatgpt-api-and-text-embedding-6a0ce3dc8bc8
#Sung Kim Mar/09/2023
#
#Chat with Document(s) using OpenAI ChatGPT API and Text Embedding
#How to chat with any documents, PDFs, and books using OpenAI ChatGPT API and Text Embedding
# Import Python Packages
import os
import platform
import openai
import chromadb
import langchain
import magic
import os
import nltk
from langchain.embeddings.openai import OpenAIEmbeddings
from langchain.vectorstores import Chroma
from langchain.text_splitter import TokenTextSplitter
from langchain.llms import OpenAI
from langchain.chains import ChatVectorDBChain, VectorDBQA
from langchain.document_loaders import GutenbergLoader
from langchain.document_loaders import UnstructuredPDFLoader
from langchain.document_loaders import UnstructuredURLLoader
from langchain.document_loaders import OnlinePDFLoader
from langchain.document_loaders import PDFMinerLoader
from langchain.document_loaders import UnstructuredFileLoader
disclaimer = ("""
#### 注意事項及免責事項 Disclaimer and Precautions
###### Use of this tool is at your own risk. The creator cannot be held responsible for any harm caused by this tool.
###### The creator is not responsible for any damages caused to users or third parties as a result of such content.
""")
# Configure Chroma
#persist_directory="/data/"
#Convert local file to Embedding (txt file is better)
loader = UnstructuredFileLoader('ChatGPT_S_ND.txt')
paldoc = loader.load()
#OPENAI_API_KEY = "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"
#os.environ['OPENAI_API_KEY'] =
openai.api_key = os.environ.get("OPENAI_API_KEY")
#os.environ['OPENAI_API_KEY'] = os.getenv('OPENAI_API_KEY')
#OPENAI_API_KEY = os.getenv('openai_api_key')
#OPENAI_API_KEY = "openai_api_key"
#local file
text_splitter = TokenTextSplitter(chunk_size=100, chunk_overlap=30)
paldocs = text_splitter.split_documents(paldoc)
embeddings = OpenAIEmbeddings()
#embeddings = OpenAIEmbeddings(api_key=os.environ['OPENAI_API_KEY'])
vStore = Chroma.from_documents(paldocs, embeddings)
from langchain.chains import RetrievalQA
from langchain.chat_models import ChatOpenAI
# RetrievalQAチェーンの生成
model = RetrievalQA.from_chain_type(
llm=ChatOpenAI(temperature=0.5, model_name="gpt-3.5-turbo-16k", max_tokens = 256),
chain_type="stuff",
retriever=vStore.as_retriever()
)
#open as a demo Web app using Gradio
import gradio as gr
# 関数を定義
def askandanswer(question, Language): return model.run("Please create a simple answer to the question from family members of advanced cancer patients as an expert of palliative care and hospice care in " + Language + ". [Question] " + question)
# Web设计
app = gr.Interface(fn=askandanswer,
inputs= [gr.Textbox(placeholder="Please input query "),
gr.Dropdown(["中文 Chinese", "英語 English"], label="言語 Language")],
outputs="text",
title="文件聊天机器人 Powered by ChatGPT plus langchain.ipynb",
description= "Chat with Document(s) using OpenAI ChatGPT API and Text Embedding",
article= (disclaimer),
)
# Web起動
app.launch() |