更新於 2024/12/10閱讀時間約 5 分鐘

Gradio介面

搬屋忙左一段時間,仲跌(或者被偷)左部電話。所以無時間寫野。同學T送來部紅米Note 11玩住先。

而家慢慢返回正軌,將之前的稍稍整理一下再到下一步工作。


這個項目原意是處理公司三十年來的舊報告文字記錄,用作翻查或者生成可用的資源。早前試砲就用左SQLite Vec,唔知算得定唔得,不過都要交功課比老細望下啲野郁緊架。


交功課,就要有野睇,搵左輪,有幾件野,求其揀就用左呢件Gradio。

用pip裝左佢先,或者如果已經可以用 --grade 升級:

pip install gradio

pip install --upgrade gradio


Gradio 有個快速簡單建立介面的function,gr.Interface,

https://www.gradio.app/docs/gradio/interface


睇返佢官方文檔就係唔駛自己一個個Diabox 去寫出來,只要一行話佢知輸入係乜野類型,輸出係乜,中間佢會有個Callback function 比你行完Return返去。


import gradio as gr

def greet(name):
return "Hello " + name + "!"

demo = gr.Interface(fn=greet, inputs="textbox", outputs="textbox")

if __name__ == "__main__":
demo.launch()



咁就。

如果要更多Control 個介面,就可以用到 gr.Blocks()

block = gr.Blocks()

with block:
    gr.Markdown("""<h1><center>Chat0CodePM</center></h1>""")


    search_key_cmd = gr.Textbox(
        label="SearchKeyCmd",
        lines=1,
        value=createSearchKeyPrompt
    )

    result_search_keywords = gr.Textbox(
        label="Results:",
        lines=3,  
        value=""
    )



大約係樓上咁,就會有兩個Textbox,之後可以再加粒掣去比人禁完攞返個box的Value比一個function做野。

submit = gr.Button

submit.click(search_vectorDB, inputs=[search_key_cmd], outputs=[result_search_keywords])


咁再implement 個function 去返上次預備好的 SQLite DB,就有功課交。當然,真係份功課仲有堆參數呀,乜野Temperature, top_k, top_p等等等等。


db_path = './abcde.db'
embedding_function = HuggingFaceEmbeddings(model_name="all-MiniLM-L6-v2")


def search_vectorDB(keywords):
    query = keywords   
    vector_store = SQLiteVec(table="state_union", connection = False, embedding=embedding_function, db_file=db_path)

data = vector_store.similarity_search(query)

return data


筆記就寫到咁多,0codeIT狗當係複習下。



分享至
成為作者繼續創作的動力吧!
© 2024 vocus All rights reserved.