Nakatanggap ako kamakailan ng isang email mula sa isang mahuhusay na iskolar na nagtatanong kung paano Botpress mga interface sa LLMs .
Nagsusulat siya ng isang papel sa pag-iwas sa pag-lock-in ng vendor, at gustong malaman kung marahil ay gumamit kami ng balangkas tulad ng LangChain o Haystack.
Ako ay higit sa nalulugod na ibahagi sa kanya na lumikha kami ng aming sariling mga abstraction na nagpapahintulot Botpress mga tagabuo upang ma-interface LLMs .
Dahil sa mas malawak na interes sa paksa, nais kong isapubliko ang impormasyong ito. Maaari itong magamit para sa iba pang mga dev o sa mga gumagamit ng aming platform. Umaasa ako na makita mo itong kawili-wili gaya ng nakita kong paglikha nito.
Dalawang paraan Botpress mga interface sa LLMs
Botpress ay lumikha ng sarili nitong abstraction na gumagana sa dalawang paraan:
1. Pagsasama-sama
Ang mga integrasyon ay may konsepto ng mga aksyon na may mga partikular na uri ng input at output.
Mayroon kaming mga bahagi ng open source sa platform, kaya ang komunidad ay maaaring lumikha ng kanilang sariling mga pagsasama na maaaring maging pribado o magagamit para sa pampublikong paggamit.
Kaya LLM provider - OpenAI , Anthropic, Groq, atbp. – bawat isa ay may integrasyon. Iyan ay isang paraan upang maka-interface ang aming mga user sa kanila.
2. LLM mga interface ng pagsasama
Sa itaas ng konsepto ng mga pagsasama, nagdagdag kami ng "mga interface."
Ito ay mga karaniwang kahulugan ng schema lamang na maaaring palawigin ng mga pagsasama. Gumawa kami ng karaniwang schema para sa LLMs .
Hangga't pinalawak ng isang pagsasama ang schema na ito, ang pagsasama ay itinuturing na isang LLM provider. Kaya ito gumagana out-of-the-box in Botpress .
Narito ang ilang halimbawa ng Botpress integrations para sa iba't ibang LLM provider:
Mayroon kaming katulad na mga interface para sa text2image, image2text, voice2text, text2voice, atbp.
Mga pagsasaayos ng modelo
Sa loob ng Botpress Studio, mayroon kaming dalawang pangkalahatang config: ang "Pinakamahusay na Modelo" at ang "Mabilis na Modelo". Nalaman namin na sa pangkalahatan, ang karamihan sa mga gawain ay madaling magkasya sa isa sa dalawang mode na ito.
Ngunit bilang karagdagan sa purong pagpili ng modelo, nalaman namin na ang iba't ibang provider ay masyadong nag-iba sa tool calling at mga format ng mensahe upang madaling makapagpalit ng isang modelo sa isa at umasa ng magagandang performance.
Ang Botpress inference engine
Dahil diyan, gumawa kami ng sarili naming inference engine na tinatawag na LLMz, na gumagana sa anumang modelo na walang (o napakaliit) na kinakailangang agarang pagbabago. At nagbibigay ito ng mas mahusay na tool calling at madalas na mas mahusay na pagganap sa mga tuntunin ng halaga ng token at LLM mga roundtrip.
Gumagana ang makinang ito sa mga uri ng typescript sa likod ng eksena para sa mga kahulugan ng tool, markdown para sa format ng output ng mensahe at code, at isang LLM -native execution sandbox para sa hinuha.
Nagbibigay ang LLMz ng maraming pag-optimize at mga tampok sa pag-debug na kinakailangan para sa mga advanced na kaso ng paggamit gaya ng:
- Pag-compress ng mga token ng input
- Smart token truncation
- Token-optimized memory-to-context
- Parallel at composite tool calling
- Pinaghalong maramihang mensahe + mga tool na tawag sa isang solong LLM tawag
- Ganap na uri ng ligtas na mga tool (input at output)
- Mga mahabang session sa pamamagitan ng sandbox serialization
- Tool na panunuya, pagbabalot at pagsubaybay
- Buong execution isolation sa magaan na V8 isolates (nagbibigay-daan na magpatakbo ng libu-libong sabay-sabay na pagpapatupad nang mabilis at sa napakamura)
- Mga awtomatikong pag-ulit at pagbawi ng error
Ang lahat ng mga bagay na ito ay kinakailangan para sa aming mga use-case. Ngunit sila ay imposible o napakahirap gawin sa regular na tool na pagtawag.
Ang kaso laban sa magaan na mga modelo ng router
Matagal na naming pinag-isipan ang pagbuo ng isang magaan na modelo ng router na uupo sa itaas ng mga kasalukuyang modelo at awtomatikong pipili ng tamang modelo para sa gawaing nasa kamay.
Ngunit nagpasya kaming huwag gawin ito sa maraming kadahilanan:
1. Mahuhulaan
Karamihan sa aming mga kliyente - naiintindihan - gusto ng maaasahan at mahuhulaan na mga resulta.
Kaya ang ideya ng isang dynamic na modelo ng router ay medyo nakakatakot para sa mga high-level na ahente. Ito ay nagdudulot ng isa pang layer ng unpredictability sa LLMs .
2. Bilis
Napakahalaga ng latency para sa aming mga use-case. Para maging mabilis ang router, kailangang napakaliit ng modelo (at masasabing dumber) kaysa sa mga modelong dadaanan nito - marahil ay isang tradisyunal na classifier.
Bagama't ang mga ito sa pangkalahatan ay gumaganap nang maayos kapag sila ay sinanay sa mga partikular na gawain, a) ang kanilang maiikling sukat ng konteksto ay isang isyu para sa mahahabang senyas at b) nabigo silang mag-generalize sa iba pang mga prompt sa labas ng kung ano ang kanilang sinanay.
3. Modelong supremacy o pagkakapantay-pantay ng modelo
Bagama't maaaring iba ang sabihin ng mga benchmark, sa ligaw, bihira na kaming makakita ng mga modelo na mas mahusay GPT -4o (sa ngayon).
Malabo pa kung LLMs ay talagang mas mahusay na gaganap sa gawain X kaysa sa gawain Y sa paglipas ng panahon, o kung lahat LLMs ay magiging napakahusay sa karamihan ng mga bagay. Sa kaso ng huli, ang pagpili ng modelo ay hindi sulit ang pagsisikap.
Kinabukasan-proofing LLMs may feedback
LLMs ay magiging isang kalakal sa loob ng ilang taon at ang pagpili ng modelo ay hindi talaga magiging isang bagay.
Para sa mga kadahilanang iyon, nagpasya kaming ibigay ang aming pagsisikap sa pagbibigay ng magandang mekanismo para sa pagbibigay LLMs na may mga halimbawa.
Kaya gumawa kami ng system para kumuha ng feedback. Nag-iimbak ito ng "mga pag-aaral" para sa mga pagpapatupad sa hinaharap. At dynamic na nagbibigay ito ng mga pinaka-nauugnay na pag-aaral sa agarang oras para sa mga pagpapatupad sa hinaharap, upang matiyak ang maaasahan at tuluy-tuloy na mga pagpapabuti sa paglipas ng panahon.
Bilang LLMs bawat pagbuo tungo sa mas mataas at mas mataas na pagganap, handa kami at nasasabik na sulitin ang mga ito para sa mga user ng aming platform.
Talaan ng mga Nilalaman
Manatiling napapanahon sa pinakabago sa mga ahente ng AI
Ibahagi ito sa: