บันทึก
อยู่ระหว่างดำเนินการ
Lugha จากภาษาสวาฮิลี แปลว่า "ภาษา" คือ PHP Generative AI Framework ที่ให้วิธีที่ง่ายและสะดวกในการโต้ตอบกับผู้ให้บริการ AI ต่างๆ แนวคิดหลักคือการจัดเตรียม API ที่ไม่เชื่อเรื่องพระเจ้าของผู้ให้บริการแบบครบวงจรสำหรับโมเดล AI ทำให้ง่ายต่อการสลับระหว่างผู้ให้บริการ
โปรเจ็กต์นี้ได้รับแรงบันดาลใจอย่างสูงจาก LangChain และ LLphant ซึ่งออกแบบมาสำหรับแอปพลิเคชันที่ใช้ Chatbot, RAG (Retrieval-Augmented Generation) พร้อมการบูรณาการโมเดลการฝัง การเสร็จสมบูรณ์ และการจัดอันดับใหม่
ผู้ให้บริการที่รองรับ:
ผู้ให้บริการ | ลิงค์ | คุณสมบัติ |
---|---|---|
OpenAI | openai.com | เสร็จสิ้นการฝัง |
มิสทรัล | มิสทรัล.ไอ | เสร็จสิ้นการฝัง |
ai.google | เสร็จสิ้นการฝัง | |
GitHub | github.com | เสร็จสิ้นการฝัง |
มานุษยวิทยา | มานุษยวิทยา.com | เสร็จสิ้น |
โวเอเจอร์.ไอ | voyageai.com | การฝัง การจัดอันดับใหม่ |
โอลามา | ollama.com | เสร็จสิ้นการฝัง |
composer require devscast/lugha
การฝังเป็นการแสดงคำประเภทหนึ่งที่ช่วยให้คำที่มีความหมายคล้ายกันมีการแสดงที่คล้ายกันได้ สามารถใช้ค้นหาความคล้ายคลึงระหว่างคำ วลี หรือประโยคได้ มีประโยชน์สำหรับการจำแนกเอกสาร การจัดกลุ่ม และการดึงข้อมูล
$ client = ClientFactory :: create ( Provider :: GOOGLE );
$ embeddings = $ client -> embeddings (
prompt: ' Hello, world! ' ,
config: new EmbeddingsConfig (
model: ' text-embedding-004 ' ,
dimensions: 512
)
)-> embedding ;
โมเดลเสร็จสมบูรณ์ได้รับการออกแบบเพื่อสร้างข้อความที่เหมือนมนุษย์โดยอิงตามพร้อมท์การป้อนข้อมูล
$ client = ClientFactory :: create ( Provider :: OPENAI );
// from a prompt
$ completion = $ client -> completion (
input: ' Hello, world! ' ,
config: new CompletionConfig (
model: ' gpt-3.5-turbo ' ,
temperature: 0.5 ,
maxTokens: 100 ,
frequencyPenalty: 0.5 ,
presencePenalty: 0.5
)
)-> completion ;
// from a chat history
$ chat = $ client -> chat (
input: History :: fromMessages ([
new Message ( ' You are a chatbot, expert in philosophy ' , Role :: SYSTEM ),
new Message ( ' what is the meaning of life ? ' , Role :: USER )
]),
config: new ChatConfig (
model: ' gpt-4-turbo ' ,
temperature: 0.5 ,
maxTokens: 100 ,
frequencyPenalty: 0.5 ,
presencePenalty: 0.5
)
)-> completion ;
โมเดลการจัดอันดับใหม่ได้รับการออกแบบเพื่อจัดอันดับรายการเอกสารใหม่ตามพร้อมท์อินพุต มีประโยชน์สำหรับเครื่องมือค้นหา ระบบการแนะนำ และการดึงข้อมูล
$ client = ClientFactory :: create ( Provider :: VOYAGER );
$ ranking = $ client -> reranking (
prompt: ' What is the meaning of life ? ' ,
documents: [
new Document ( ' The best way to predict the future is to create it. ' )
new Document ( ' The only way to do great work is to love what you do. ' )
new Document ( ' Life is short, smile while you still have teeth. ' ),
new Document ( ' The best time to plant a tree was 20 years ago. The second best time is now. ' )
],
config: new RerankingConfig (
model: ' voyager-1.0 ' ,
topK: 3
)
)-> documents ;