bosquet
2024.02.22
Bosquet 的使命是讓建立人工智慧應用變得簡單。所有重要的人工智慧應用程式都需要使用複雜性快速增長的提示模板,有限的LLM上下文視窗需要記憶體管理,並且人工智慧應用程式需要代理來與外界互動。
Bosquet 提供了處理這些人工智慧應用概念的工具:
完整的專案文件(WIP)
金鑰等秘密儲存在secrets.edn
檔案中,本地參數保存在config.edn
中。製作config.edn.sample
和config.edn.sample
檔案的副本。根據需要進行更改。
命令列介面演示
執行以下命令以取得 CLI 選項
clojure -M -m bosquet.cli
設定預設模型
clojure -M -m bosquet.cli llms set --service openai --temperature 0 --model gpt-4
不要忘記為您的服務設定 API KEY(如果需要,請將“openai”更改為其他名稱)
clojure -M -m bosquet.cli keys set openai
有了這個集合,您就可以運行幾個世代:
clojure -M -m bosquet.cli "2+{{x}}="
或使用文件
clojure -M -m bosquet.cli -p demo/play-writer-prompt.edn -d demo/play-writer-data.edn
簡單的提示補全就可以這樣完成。
(require '[bosquet.llm.generator :refer [generate llm]])
(generate "When I was 6 my sister was half my age. Now I’m 70 how old is my sister?")
=>
"When you were 6, your sister was half your age, which means she was 6 / 2 = 3 years old.nSince then, there is a constant age difference of 3 years between you and your sister.nNow that you are 70, your sister would be 70 - 6 = 64 years old."}
( require '[bosquet.llm :as llm])
( require '[bosquet.llm.generator :refer [generate llm]])
( generate
llm/default-services
{ :question-answer " Question: {{question}} Answer: {{answer}} "
:answer ( llm :openai )
:self-eval [ " Question: {{question}} "
" Answer: {{answer}} "
" "
" Is this a correct answer? "
" {{test}} " ]
:test ( llm :openai )}
{ :question " What is the distance from Moon to Io? " })
=>
{ :question-answer
" Question: What is the distance from Moon to Io? Answer: " ,
:answer
" The distance from the Moon to Io varies, as both are orbiting different bodies. On average, the distance between the Moon and Io is approximately 760,000 kilometers (470,000 miles). However, this distance can change due to the elliptical nature of their orbits. " ,
:self-eval
" Question: What is the distance from Moon to Io? n Answer: The distance from the Moon to Io varies, as both are orbiting different bodies. On average, the distance between the Moon and Io is approximately 760,000 kilometers (470,000 miles). However, this distance can change due to the elliptical nature of their orbits. nn Is this a correct answer? " ,
:test
" No, the answer provided is incorrect. The Moon is Earth's natural satellite, while Io is one of Jupiter's moons. Therefore, the distance between the Moon and Io can vary significantly depending on their relative positions in their respective orbits around Earth and Jupiter. " }
( require '[bosquet.llm.wkk :as wkk])
( generate
[[ :system " You are an amazing writer. " ]
[ :user [ " Write a synopsis for the play: "
" Title: {{title}} "
" Genre: {{genre}} "
" Synopsis: " ]]
[ :assistant ( llm wkk/openai
wkk/model-params { :temperature 0.8 :max-tokens 120 }
wkk/var-name :synopsis )]
[ :user " Now write a critique of the above synopsis: " ]
[ :assistant ( llm wkk/openai
wkk/model-params { :temperature 0.2 :max-tokens 120 }
wkk/var-name :critique )]]
{ :title " Mr. X "
:genre " Sci-Fi " })
=>
#:bosquet{ :conversation
[[ :system " You are an amazing writer. " ]
[ :user
" Write a synopsis for the play: n Title: Mr. X n Genre: Sci-Fi n Synopsis: " ]
[ :assistant " In a futuristic world where technology ... " ]
[ :user " Now write a critique of the above synopsis: " ]
[ :assistant
" The synopsis for the play " Mr. X " presents an intriguing premise ... " ]],
:completions
{ :synopsis
" In a futuristic world where technology has ... " ,
:critique
" The synopsis for the play " Mr. X " presents an intriguing premise set ... " }}
生成返回:bosquet/conversation
列出完整聊天,其中生成的部分已填寫,並且:bosquet/completions
僅包含生成的數據