0%

ask

ask

如果你不想使用文件檔案,希望直接輸入文件內容,你可以使用ask物件,使用 info 參數將文件的內容傳給語言模型,info參數可輸入的內容為純文字、文件檔案名、文件資料夾名、網址,ask物件會讀取所有文件和純文字內容,並使用所有文件進行回答,因此若使用過多文件或文件內容過多,將花費大量時間與token。
info中的單一字串長度大於語言模型上限,該字串會強制被自行切割成 list of str,因此建議若文字過多,請自行分段成 list of str

info中的總文字內容過多,文件內容會被分別提供給語言模型作回答,並最終整合成一個最終回答,因此可能會花費較久時間。
詢問完問題後,若有keep_logs參數,可選擇儲存成json檔案

ask範例

1
2
3
4
5
6
7
8
9
10
11
12
13
import akasha

ak = akasha.ask(
model="openai:gpt-4o", max_input_tokens=8000, keep_logs=True, verbose=True
)

res = ak(
prompt="akasha是甚麼?",
info=["https://github.com/iii-org/akasha"],
)
ak.save_logs("logs_ask.json")


ask 參數

verbose: bool 如果設True,會顯示每個步驟產生的文字和狀態
model: Union[str, BaseLanguageModel] 使用的語言模型,如 openai:gpt-3.5-turbo, gemini:gemini-1.5-flash
temperature: float 語言模型的變化度(0~1)
system_prompt: str 指示給語言模型的output格式需求

stream: bool 如果設為True,會回傳generator

max_input_tokens: int 單次輸入模型的最大token數

max_output_tokens: int 模型輸出的最大token數

env_file:str 指定.env環境設定檔名

keep_logs: bool 是否保存執行過程和結果

call 參數

info: Union[str, list, Path, Document] 一個或多個包含文件檔案的資料夾路徑名稱、文件名稱、網址、純文字
prompt: str 使用者的問題

history_messages: List[str] 需要一併提供給語言模型的對話紀錄



vision

有些語言模型可以輸入圖片進行辨識,使用函式vision便可傳入圖片給語言模型。
參數 image_path 可為圖片的本機路徑或網址,也可以使用list傳入多張圖片

vision範例

1
2
3
4
5
6
7
8
9
10
import akasha
ak = akasha.ask(
model="openai:gpt-4o", max_input_tokens=8000, keep_logs=True, verbose=True
)

res = ak.vision(
prompt="這張圖片是什麼?",
image_path="https://upload.wikimedia.org/wikipedia/commons/thumb/d/dd/Gfp-wisconsin-madison-the-nature-boardwalk.jpg/2560px-Gfp-wisconsin-madison-the-nature-boardwalk.jpg",
)

vision 參數

image_path: Union[List[str], str] 圖片的本機路徑或網址,也可以使用list傳入多張圖片
prompt: str 使用者的問題


相關連結

self.docs的詳細資訊可參考文件搜尋
self.model_obj的詳細資訊可參考設定語言模型