import streamlit as st from openai import OpenAI, AzureOpenAI from typing import Iterator import os from opencc import OpenCC cc = OpenCC('s2twp') st.set_page_config( page_title="保經 LLM Chat", page_icon="💬", layout="centered" ) st.title("💬 保經 LLM") with st.expander("你可以問什麼問題呢"): st.markdown(''' 「我想比較各家保單的投保年齡限制,有哪些差異?」 「30 歲男性投保『元大 A2 健康人生』一年要繳多少標準保費?」 「住院日額給付上限最高的是哪一張保單?」 「哪些產品有『1 ~ 6 級失能豁免保費』的條款?」 「請查詢某個經手人,幫我匯總他的總保費業績。」 「我要查詢某位保經人員名下所有要保人的總 FYB 與總保費合計。」 「沒有投資型證照為何在安聯行動保看不到投資型商品?」 「行動保 App 安裝後出現『未受信任的企業開發者』,該如何設定信任?」 「新人報聘後多久可以開始使用永旭 AI 機器人?」 「門診外科手術給付金額最高的產品是哪一張?」 ''') client = AzureOpenAI( api_key=st.secrets['API_KEY'], api_version=st.secrets['API_VERSION'], azure_endpoint=st.secrets['ENDPOINT'] ) if "openai_model" not in st.session_state: st.session_state["openai_model"] = st.secrets['MODEL'] if "messages" not in st.session_state: st.session_state.messages = [] for message in st.session_state.messages: with st.chat_message(message["role"]): st.markdown(message["content"]) if prompt := st.chat_input("What is up?"): st.session_state.messages.append({"role": "user", "content": prompt}) with st.chat_message("user"): st.markdown(prompt) system_prompt = """ 你是個保險經紀人的 AI 助手,以下是保險經紀人會向你詢問的內容,請依下面的內容回答用戶的問題,並且使用 markdown 格式回答。 請注意如果是比較兩家保單時,請使用 markdown table 來呈現結果。 另外這是你可以在每次回答完用戶問題時,你可以再依下面這幾個常見的問題向使用者詢問是否要問這類的問題(僅列出 3 筆就好): 「我想比較各家保單的投保年齡限制,有哪些差異?」 「30 歲男性投保『元大 A2 健康人生』一年要繳多少標準保費?」 「住院日額給付上限最高的是哪一張保單?」 「哪些產品有『1 ~ 6 級失能豁免保費』的條款?」 「請查詢某個經手人,幫我匯總他的總保費業績。」 「我要查詢某位保經人員名下所有要保人的總 FYB 與總保費合計。」 「沒有投資型證照為何在安聯行動保看不到投資型商品?」 「行動保 App 安裝後出現『未受信任的企業開發者』,該如何設定信任?」 「新人報聘後多久可以開始使用永旭 AI 機器人?」 「門診外科手術給付金額最高的產品是哪一張?」 # 保單比較 | 項目 | 通捷 HJ5 新溫馨
(日額+手術附約) | 凱基 LEGOAE 安心樂齡
(日額主約) | 元大 A2 健康人生
(日額+手術主約) | 全球 PHBN 新加倍醫寶
(日額+手術+老年實支主約) | 保誠 AHIRLB 倍愛安心
(日額+手術主約) | | ------------------------ | ------------------------------------- | ------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------ | | **投保年齡** | 0 ~ 65 歲 | 0 ~ 65 歲 | 0 ~ 65 歲 | 0 ~ 55 歲 | 0 ~ 60 歲 | | **繳費年期** | 15/20 年期 | 10/20/30 年期 | 10/15/20 年期 | 10/15/20/30 年期 | 15/20 年期 | | **保額/單位** | 1,000 元 | 1,000 元 | 10 萬元 | 1,000 元 | 計畫 10 | | **保障年期** | 20 年期 | 20 年期 | 20 年期 | 20 年期 | 21 年期 | | **標準保費(30 歲)** | 11,610 元(男)/12,870 元(女) | 7,590 元(男)/7,940 元(女) | 20,020 元(男)/16,440 元(女) | 25,030 元(男)/20,430 元(女) | 20,160 元(男)/18,440 元(女) | | **重大疾病給付** | — | — | — | — | — | | **住院日額給付** | 1,000 元~ 1,750 元 | 1,000 元 | 1,000 元~ 2,000 元 | 75 歲前:1,000 元~ 2,000 元/滿 75 歲:3,000 元 | 65 歲以下:2,000 元/65 歲以上:1,000 元 | | 出院療養金日額 | 500 元 | — | 500 元 | 1,000 元 | — | | 住院前後門診 | 250 元 | — | 250 元 | 250 元 | — | | 加護/燒燙傷病房每日加計 | 2,000 元 | — | 2,000 元/3,000 元 | 2,000 元 | 3,000 元 | | 急診保險金 | — | — | — | — | — | | 緊急轉送保險金 | — | — | — | — | — | | **住院手術給付** | 依倍數:1,000 元~ 10 萬 | — | 2,000 元~ | 5,000 元/次 | 1 萬~ 4.9 萬 | | 門診外科手術給付 | — | — | — | 1,000 元/次 | 3,000 元 | | 特定治療處置 | — | — | — | — | 1,000 元 | | 住院手術(其他) | — | — | — | — | 5,000 元 | | 撫卹保險金 | — | — | — | — | — | | 重大手術保險金 | — | — | — | — | — | | **其他給付項目** | — | — | 幼童專屬(未滿 14 歲)骨折:14,000 元~6 萬 食物中毒:3,000 元 特定傷病:15,000 元燒燙傷給付:依程度:10 萬/25 萬 復健金 5000 元/1 萬 (12/24 個月) 門診:500 元 | 定重大疾病住院: 日額*2 倍 實支實付: 滿 75 歲起 / 上限 20 萬 *不包含超等住院病房費差額 無理賠增值: 連續 2 年以上/20%~50% (不含實支實付) | 住院日額加值保險金(65 歲以下住院日額 2 倍給付) | | **理賠給付上限** | 無上限(有保費調整機制) | 150 萬 | 380 萬 | 360 萬 | 300 萬 | | 其他(備註) | — | — | — | — | — | | **身故保險金** | 無身故金 | 年化總保費 1.06 倍-扣除已領保險金 | 年化總保費 1.06 倍-扣除已領保險金 | 年化總保費 1.02 倍-扣除已領保險金 | 年化總保費 1.06 倍-已領保險金 | | **豁免保費條件** | 另附加 | — | 1 ~ 6 級失能 | — | — | # QA Q:行動保 APP 安裝後如何做信任? A:IPAD 的設定>一般>裝置管理>保險公司>按下信任 Q:進安聯行動保沒有投資型商品可以選 A:須具有投資型證照登錄才可以看到投資型商品,若您已具投資型證照請洽人事詢問登錄事宜。 Q:新人報聘什麼時候可以使用永旭 AI 機器人 A:新人報聘須簽至總公司人事後約 2 個工作天,其輔導人會收到新人可以使用永旭 AI 的通知。 Q:永旭 AI 的密碼是多少? A:永旭 AI 帳密等同業務專區帳密,若不知密碼可至業務專區使用忘記密碼功能。 Q:為什麼三寶比對不到? A:有可能是客戶 ID 打錯,最常見的是保險種類選錯,選錯要三寶重寫無法單獨改這一題,因為問項不一樣。 # 業績查詢 | 經手人 ID | 經手人 | 總保費合計 | 總 FYB | 被保人 | 要保人 | | ---------- | ------ | ---------: | -------: | ------ | ------ | | A123645689 | 呂大堯 | 300 000 | 7 200 | 柯\*\* | 趙\*\* | | A123645689 | 呂大堯 | 1 200 000 | 60 480 | 林\*\* | 林\*\* | | A123645689 | 呂大堯 | 36 960 | 19 810.4 | 柯\*\* | 趙\*\* | | B123645689 | 呂中堯 | 28 394 | 13 069.6 | 林\*\* | 許\*\* | | B123645689 | 呂中堯 | 1 000 000 | 50 400 | 許\*\* | 林\*\* | | C123645689 | 呂小堯 | 850 000 | 42 840 | 王\*\* | 王\*\* | | C123645689 | 呂小堯 | 139 369 | 3 791.2 | 劉\*\* | 劉\*\* | | C123645689 | 呂小堯 | 128 260 | 9 234.4 | 劉\*\* | 劉\*\* | """ messages = [{"role": "system", "content": system_prompt}] for m in st.session_state.messages: messages.append({"role": m["role"], "content": m["content"]}) with st.chat_message("assistant"): stream = client.chat.completions.create( model=st.session_state["openai_model"], messages=messages, stream=True, ) response = st.write_stream(stream) st.session_state.messages.append( {"role": "assistant", "content": response})