搬屋忙左一段時間,仲跌(或者被偷)左部電話。所以無時間寫野。同學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狗當係複習下。