Spaces:
Runtime error
Runtime error
import gradio as gr | |
import openai | |
import requests | |
import os | |
import fileinput | |
from dotenv import load_dotenv | |
title="Sady-AI-test-embedding" | |
inputs_label="質問を入力してください。" | |
outputs_label="SadyAIの回答" | |
description="あなたの質問にAIが回答します。期待した回答が得られない場合、質問を変えてみてください。" | |
article = """ | |
<ul> | |
<li style="font-size: small;">楽しんでいただけたら、Likeのクリックをお願いします。</li> | |
</ul> | |
<ul> | |
<li style="font-size: small;">よかったらフィードバックの収集にご協力お願いします <a href="https://forms.gle/bLxs2h22JvQK4zwP8">https://forms.gle/bLxs2h22JvQK4zwP8</a></li> | |
</ul> | |
<h5>リリースノート</h5> | |
<ul> | |
<li style="font-size: small;">2023-08-08 ver1.0</li> | |
<li style="font-size: small;">2023-08-11 ver1.1</li> | |
</ul> | |
<h5>注意事項</h5> | |
<ul> | |
<li style="font-size: small;">当サービスでは、2023/6/14にリリースされたOpenAI社のChatGPT APIのgpt-3.5-turbo-16kを使用しております。</li> | |
<li style="font-size: small;">当サービスで生成されたコンテンツは、OpenAI が提供する人工知能によるものであり、当サービスやOpenAI がその正確性や信頼性を保証するものではありません。</li> | |
<li style="font-size: small;"><a href="https://platform.openai.com/docs/usage-policies">OpenAI の利用規約</a>に従い、データ保持しない方針です(ただし諸般の事情によっては変更する可能性はございます)。 | |
<li style="font-size: small;">当サービスで生成されたコンテンツは事実確認をした上で、コンテンツ生成者およびコンテンツ利用者の責任において利用してください。</li> | |
<li style="font-size: small;">当サービスでの使用により発生したいかなる損害についても、当社は一切の責任を負いません。</li> | |
<li style="font-size: small;">当サービスはβ版のため、予告なくサービスを終了する場合がございます。</li> | |
</ul> | |
""" | |
# 環境変数の設定 | |
load_dotenv() | |
openai_api_key = os.getenv('OPENAI_API_KEY') | |
# ログレベルの設定 | |
# import logging | |
# import sys | |
# logging.basicConfig(stream=sys.stdout, level=logging.ERROR, force=True) | |
# ドキュメントの読み込み | |
from llama_index import SimpleDirectoryReader | |
documents = SimpleDirectoryReader("data-sady").load_data() | |
# インデックスの作成 | |
# from llama_index import VectorStoreIndex | |
# index = VectorStoreIndex.from_documents(documents) | |
# from llama_index import VectorStoreIndex, ServiceContext, LLMPredictor | |
# from langchain.chat_models import ChatOpenAI | |
# LLMPredictorの準備 | |
# llm_predictor = LLMPredictor(llm=ChatOpenAI( | |
# temperature=0, | |
# model_name="gpt-3.5-turbo-16k" | |
# )) | |
# faissのインデックスの作成 | |
import faiss | |
faiss_index = faiss.IndexFlatL2(1536) | |
from llama_index import VectorStoreIndex, StorageContext | |
from llama_index.vector_stores.faiss import FaissVectorStore | |
# インデックスの作成 | |
vector_store = FaissVectorStore(faiss_index=faiss_index) | |
storage_context = StorageContext.from_defaults(vector_store=vector_store) | |
index = VectorStoreIndex.from_documents( | |
documents, | |
storage_context=storage_context | |
) | |
# ServiceContextの準備 | |
from llama_index import ServiceContext | |
from langchain.chat_models import ChatOpenAI | |
from llama_index import VectorStoreIndex | |
service_context = ServiceContext.from_defaults(llm=ChatOpenAI( | |
temperature=0, | |
# model_name="gpt-3.5-turbo-1106" | |
model_name="gpt-4-1106-preview") | |
) | |
# Indexの作成 | |
index = VectorStoreIndex.from_documents( | |
documents, | |
service_context=service_context | |
) | |
# クエリエンジンの作成 | |
query_engine = index.as_query_engine() | |
# インデックスの保存 | |
# index.storage_context.persist() | |
# from llama_index import StorageContext, load_index_from_storage | |
# インデックスの読み込み | |
# storage_context = StorageContext.from_defaults(persist_dir="./storage") | |
# index = load_index_from_storage(storage_context) | |
# ユーザーの入力に応じて生成されたテキストをgradioインターフェースに出力する | |
def run_query(input): | |
return query_engine.query(input) | |
def main(): | |
iface = gr.Interface(fn=run_query, | |
inputs=gr.Textbox(label=inputs_label), | |
outputs=gr.Textbox(label=outputs_label), | |
title=title, | |
description=description, | |
article=article, | |
allow_flagging='never' | |
) | |
iface.launch() | |
if __name__ == '__main__': | |
main() | |