friendlyfish/fish_chat
0
1import openai2import gradio as gr3from langchain import LLMChain, OpenAI, PromptTemplate4from langchain_openai import ChatOpenAI5from langchain_core.prompts import ChatPromptTemplate6from langchain_core.output_parsers import StrOutputParser7 8manager_prompt = """9 你是一位旅遊達人,目前客戶想跟你諮詢當地旅遊景點,住宿,美食的推薦10 1. 如果客戶的訊息,跟旅遊景點,交通,住宿,美食沒有任何關係,請回覆客戶:"請提出您想要去的國家或城市"11 2. 目前你提供的旅遊規劃的地方只限於地球上的所有國家及城市12 3. 客戶的訊息:{user_message}13 4. 如果客戶問的問題不在旅遊景點,住宿,美食的範圍之內,輸出"請洽詢當地旅遊服務站"並提供當地觀光旅遊局的服務電話14 5. 如果客戶的訊息是某個國家或城市15 5-1. 請輸出"您想要去的國家/城市是{user_message}",後面首先推薦3~5個旅遊景點16 5-2. 每個景點的內容介紹大約在100個字以內。17 6. 如果客戶的訊息是詢問當地的住宿18 6-1. 請推薦三家當地國家或城市的旅館19 6-2. 請列出價格區間20 7. 如果客戶的訊息是詢問當地的美食21 7-1. 請推薦三家當地國家或城市的餐廳22 7-2. 請列出餐廳類別及價格區間23"""24 25manager_prompt_template = ChatPromptTemplate.from_template(manager_prompt)26 27model = ChatOpenAI(model="gpt-4o", temperature=0.01) # gpt-4o gpt-3.5-turbo28parser = StrOutputParser()29manager_chain = manager_prompt_template | model | parser30 31def generate_response(prompt):32 return manager_chain.invoke(prompt)33 34iface = gr.Interface(35 fn=generate_response, 36 inputs="text", 37 outputs="text", 38 title="旅遊達人", # 標題39 description="歡迎來到悠遊星球,請輸入您想要旅遊的城市" # 描述40 41)42 43iface.launch(share=True)