見出し画像

高速AIチップで話題のGroqのAPIをStreamlitで使う方法


Groq社の紹介

Groqとは、高速なLPU(Language Processing Unit)を開発しているアメリカ系のベンチャー企業です。株式は公開されていませんが、Meta社のLlama3リリースタイミングで、Llama3を取り込んだGroqChatにより、高速な言語処理能力を見せつけて、Twitterやテック系記事で取り上げられています。

Groqの紹介記事やGroqChat、GroqのAPIキーの取得方法について、以前記事を書いたので興味があるなら参考にしてみてください。



GroqのAPIのStreamlitのコード紹介

今回は、GroqのAPIを利用したStreamlitのコードを紹介します。OpenAIとコード表記が似ている部分が多いので、OpenAIのAPIキーを利用したことのある人なら馴染みやすいです。

今回の成果物イメージです。


初期画面

最初に、自PC環境で、以下のモジュールを取り込みます。

pip install streamlit groq

次に、app.pyとして、次のコードを準備します。gsk-xxxxxの部分には、Groqで取得したAPIキーを記載してください。GroqにおけるAPIキーの取得方法がわからない方は、下記記事を参考にしてください。


import streamlit as st
import os
from groq import Groq

# 環境変数から API キーを取得
api_key = "gsk_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
if not api_key:
    st.error("APIキーが設定されていません。")
    st.stop()

# Groq クライアントの初期化
client = Groq(api_key=api_key)

def get_response(question):
    """ Groq API を使用してチャット応答を取得する関数 """
    chat_completion = client.chat.completions.create(
        messages=[
            {"role": "user", "content": question}
        ],
        model="llama3-70b-8192",
    )
    return chat_completion.choices[0].message.content

# Streamlit UI
st.title('Groq API デモ')

# ユーザー入力
user_input = st.text_input("質問を入力してください:")

if st.button('回答を取得'):
    with st.spinner('回答を取得中...'):
        response = get_response(user_input)
        st.write(response)

Groq APIには、いくつかの言語モデルが用意されていますが、今回は、llama3-70b-8192を利用します。次に、自PCで以下を実行すればStreamlitにおける初期画面が出てきます。

streamlit run app.py

質問を入力してくださいの下に、何か入力して、回答を取得をクリックしますと次のように表示されます。


実行結果画面


この記事が気に入ったらサポートをしてみませんか?