前言
Groqcloud 目前免费提供 API 给用户使用,可以使用 Streamlit 快速搭建一个基础的 Chatbot 应用,然后部署在 Streamlit cloud 当中。
Groq 提供了四个模型:
- Llama 3 8b
- Llama 3 70b
- Mixtral 8×7b
- Gemma 7b
代码
安装 Streamlit / Groq 库
pip install streamlit
pip install groq
编写 streamlit_app.py
import streamlit as st
from groq import Groq
import os
st.title('Chat with Groq')
if 'messages' not in st.session_state:
st.session_state.messages = []
for messages in st.session_state.messages:
with chat_message(messages['role']):
st.markdown(messages['content'], unsafe_allow_html=True)
model_max_tokens = {
'llama3-70b-8192': 8192,
'llama3-8b-8192': 8192,
'mixtral-8x7b-32768': 32768,
'gemma-7b-it': 8192
}
with st.sidebar:
model: str = st.selectbox('Choose a LLM to chat', ('llama3-70b-8192', 'llama3-8b-8192', 'mixtral-8x7b-32768', 'gemma-7b-it'))
system_prompt: str = st.text_area('System Prompt', value='You are a helpful assistant.')
max_tokens: int = st.slider('Max Tokens', 1, model_max_tokens[model], model_max_tokens[model], step=1)
temperature: float = st.slider('Temperature', 0.00, 2.00, 0.75, step=0.01)
top_p: float = st.slider('Top P', 0.00, 1.00, 1.00, step=0.01)
if st.button('New Button'):
st.session_state.messages = []
st.experimental_rerun()
client = Groq(api_key=os.environ.get('GROQ_API_KEY'))
user_input = st.chat_input('Say something...')
if user_input:
st.session_state.messages.append({'role': 'user', 'content': user_input})
with st.chat_message('user'):
st.markdown('user_input', unsafe_allow_html=True)
messages = [{'role': 'system', 'content': system_prompt}] + st.session_state.messages
chat_completion = client.chat.completions.create(
model=model,
messages=messages,
max_tokens=max_tokens,
temperature=temperature,
top_p=top_p,
stop=None,
stream=False
)
response = chat_completion.choices[0].message.content
st.session_state.messages.append({'role': 'assistant', 'content': response})
with chat_message('assistant'):
st.markdown('response', unsafe_allow_html=True)
部署
网址链接:
console.groq.com (Groqcloud) streamlit.io/cloud (Streamlit cloud)
- 先在 Github 中创建一个仓库,将 streamlit_app.py 和 requirements.txt (里面写上需要的第三方库,这里只需要写
groq
) 进行上传 - 登录 Streamlit cloud,链接到自己的 Github,点击“New app”,根据要求进行配置
- 在“Advance settings” 中,选择对应的 Python 版本,然后在“Secrets”一栏中,配置 API Key (默认写为
GROQ_API_KEY = "<你实际的 api_key>"
) - 最后等待系统完成部署