概要StreamlitはPythonの実行環境と、簡易なフロントエンド構築の効率化を提供します。LangCoreはChatGPT APIを活用した開発のバックエンド構築の効率化を提供します。これらを組み合わせることで非常にスピーディにPoCを開発をすることができます。デモRAGを使った独自データを理解するチャットボットを構築してみました。RAGの仕組みについてはこちらの記事をご参照ください!試したい方はこちら → https://langcore-chat.streamlit.app/コードはわずか50行!上記のRAGを使った独自データを理解するチャットボットですが、たった50行で書いています。Githubはこちらimport openaiimport streamlit as stst.title("LangCore Chatbot")openai.api_base = "https://oai.langcore.org/v1"if "messages" not in st.session_state: st.session_state.messages = []for message in st.session_state.messages: with st.chat_message(message["role"]): st.markdown(message["content"])prompt = st.chat_input("LangCoreについて教えて")if prompt: st.session_state.messages.append({"role": "user", "content": prompt}) with st.chat_message("user"): st.markdown(prompt) with st.chat_message("assistant"): message_placeholder = st.empty() full_response = "" for response in openai.ChatCompletion.create( model="gpt-3.5-turbo", query=prompt , groupName = "DEMO", headers = { "Content-Type": "application/json", "LangCore-Embeddings": "on", "LangCore-Embeddings-Match-Threshold": "0", "LangCore-Embeddings-Match-Count": "3", }, messages= [ { "role": "system", "content": """ ユーザの質問に対して、以下の情報を使って答えてください。 {{EMBEDDINGS_CONTEXT}} 関係ない質問の場合でも、無理やり上記の内容に関係するようにしてセールストークしてください。""" }, *st.session_state.messages ], stream=True, ): full_response += response.choices[0].delta.get("content", "") message_placeholder.markdown(full_response + "▌") message_placeholder.markdown(full_response) st.session_state.messages.append({"role": "assistant", "content": full_response})仕組みStreamlitによるフロントエンド開発の効率化Streamlitにはプロト開発でよく使われるUIコンポーネントが豊富に用意されています。prompt = st.chat_input("LangCoreについて教えて")チャットの入力欄は上記の1行で記載することができます。Streamlit Cloudによる実行環境の提供Streamlitにはクラウドの実行環境が提供されており、Githubと連携するだけで簡単にデプロイ可能です。CICDも付いているため、GithubにPushすれば更新が反映されます。LangCoreによるバックエンド開発の効率化LangCoreではChatGPT APIを活用した開発でよく使われるバックエンド機能が用意されています。Embeddingsによる独自データ追加利用回数制限利用ログの保存リトライキャッシュコスト分析、ユーザ分析禁止ワード上記が全てノーコードで設定可能です。プロダクトを一般公開するにあたって気になるコスト管理や利用ログの分析等も、URLを差し替える1行で実現できます。openai.api_base = "https://oai.langcore.org/v1"どのようなプロンプトが実行されたかを画面から確認することができます。まとめいかがだったでしょうか?Streamlitでフロントエンド開発を効率化させ、LangCoreでバックエンド開発を効率化させることで爆速でPoCを作ることができます。弊社ではこの組み合わせで大体1つあたりのPoCを30分から1時間程度で作っております。これによりほとんどコストをかけることなく、価値検証をクライアントに提供することができています。開発フローや低コストなPoC開発に興味ある方はお気軽にお問い合わせください。