| import openai | |
| import gradio as gr | |
| from langchain import LLMChain, OpenAI, PromptTemplate | |
| from langchain_openai import ChatOpenAI | |
| from langchain_core.prompts import ChatPromptTemplate | |
| from langchain_core.output_parsers import StrOutputParser | |
| prompt = """ | |
| 如何從烏來公車總站走路到內洞森林遊樂區享負離子? | |
| 1. 在總站搭計程車: 每人100 元, 每車400 元, 可四人併車。 | |
| 2. a. 從總站走入烏來老街, 往下走可搭台車, 每人 50 元, | |
| b. 台車下車後, 往前走到內洞, 單程約四公里多, 沿途都是平路, | |
| c. 走到吊橋 (信賢橋) 要過橋, 右轉走完信賢步道, | |
| d. 再直走就到遊樂區門口了。內洞瀑布負離子滿滿。 | |
| 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(prompt): | |
| return chain.invoke(prompt) | |
| iface = gr.Interface( | |
| fn=generate_response, | |
| inputs="text", | |
| outputs="text", | |
| title="牛牛機器人", | |
| description="routing" | |
| ) | |
| iface.launch() |