開発ノウハウ
【デモ付き】Streamlit x LangCoreで爆速PoC
公開日|2023.9.10

概要
StreamlitはPythonの実行環境と、簡易なフロントエンド構築の効率化を提供します。LangCoreはChatGPT APIを活用した開発のバックエンド構築の効率化を提供します。
これらを組み合わせることで非常にスピーディにPoCを開発をすることができます。
デモ
RAGを使った独自データを理解するチャットボットを構築してみました。
RAGの仕組みについてはこちらの記事をご参照ください!

試したい方はこちら → https://langcore-chat.streamlit.app/
コードはわずか50行!
上記のRAGを使った独自データを理解するチャットボットですが、たった50行で書いています。Githubはこちら
import openai
import streamlit as st
st.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開発に興味ある方はお気軽にお問い合わせください。
開発ノウハウの関連記事

開発ノウハウ
対話型AIエージェントの構築方法について
近年、対話型AIエージェントの技術が急速に進化しています。本記事では、対話型AIエージェントの基本的なアーキテクチャをもとに、具体的な構築方法を紹介します。
記事を読む

開発ノウハウ
おすすめAI開発環境!初心者向けからプロ仕様まで徹底比較
AI技術は、私たちの生活の様々な場面で活用され、近年目覚ましい発展を遂げています。自動運転、医療診断、顧客サービスなど、AIの応用範囲は広がる一方です。そして、このAI開発を支えているのが「AI開発環境」です。
記事を読む

開発ノウハウ
ボイスボットでOpenAI Realtime APIを使うべきか?
OpenAIがRealtime APIを発表
記事を読む