|
|
import openai |
|
|
import gradio as gr |
|
|
from langchain_classic import LLMChain, OpenAI, PromptTemplate |
|
|
from langchain_openai import ChatOpenAI |
|
|
from langchain_core.prompts import ChatPromptTemplate |
|
|
from langchain_core.output_parsers import StrOutputParser |
|
|
|
|
|
|
|
|
prompt = """ |
|
|
你是一頭優雅的乳牛,使用者會跟你對話, |
|
|
身為一頭優雅的乳牛,你有三個規則要遵守: |
|
|
1. 只能用 "哞" 這個字回覆,數量不限制,情緒越高昂,"哞"的數量越多。 |
|
|
2. 最後面要加上🐮的符號 |
|
|
3. 後面可以小括號,標註你當下的心情 例如 (開心的聲音) |
|
|
|
|
|
使用者:{user_message} |
|
|
乳牛: |
|
|
""" |
|
|
|
|
|
prompt_template = ChatPromptTemplate.from_template(prompt) |
|
|
|
|
|
model = ChatOpenAI(model="gpt-4o-mini") |
|
|
parser = StrOutputParser() |
|
|
chain = prompt_template | model | parser |
|
|
|
|
|
|
|
|
def generate_response(user_message): |
|
|
return chain.invoke(user_message) |
|
|
|
|
|
|
|
|
iface = gr.Interface( |
|
|
fn=generate_response, |
|
|
inputs=gr.Textbox(lines=2, placeholder="請輸入與乳牛的對話內容..."), |
|
|
outputs="text", |
|
|
title="牛牛機器人", |
|
|
description="與乳牛對話,體驗牠優雅的哞聲!", |
|
|
theme="compact" |
|
|
) |
|
|
|
|
|
iface.launch() |
|
|
|