mirror of
https://github.com/katanemo/plano.git
synced 2026-04-25 16:56:24 +02:00
36 lines
1.1 KiB
Python
36 lines
1.1 KiB
Python
# copied from https://www.gradio.app/guides/creating-a-chatbot-fast#a-streaming-example-using-openai
|
|
|
|
import os
|
|
from openai import OpenAI
|
|
import gradio as gr
|
|
|
|
api_key = os.getenv("OPENAI_API_KEY")
|
|
CHAT_COMPLETION_ENDPOINT = os.getenv(
|
|
"CHAT_COMPLETION_ENDPOINT", "https://api.openai.com/v1"
|
|
)
|
|
|
|
client = OpenAI(api_key=api_key, base_url=CHAT_COMPLETION_ENDPOINT)
|
|
|
|
|
|
def predict(message, history):
|
|
history_openai_format = []
|
|
for human, assistant in history:
|
|
history_openai_format.append({"role": "user", "content": human})
|
|
history_openai_format.append({"role": "assistant", "content": assistant})
|
|
history_openai_format.append({"role": "user", "content": message})
|
|
|
|
response = client.chat.completions.create(
|
|
model="gpt-3.5-turbo",
|
|
messages=history_openai_format,
|
|
temperature=1.0,
|
|
stream=True,
|
|
)
|
|
|
|
partial_message = ""
|
|
for chunk in response:
|
|
if chunk.choices[0].delta.content is not None:
|
|
partial_message = partial_message + chunk.choices[0].delta.content
|
|
yield partial_message
|
|
|
|
|
|
gr.ChatInterface(predict).launch(server_name="0.0.0.0", server_port=8081)
|