โปรเจ็กต์นี้เป็น REST API ทดแทนแบบดรอปอินสำหรับ Vertex AI ( PaLM 2, Codey, Gemini ) ที่เข้ากันได้กับข้อกำหนด OpenAI API
ตัวอย่าง:
แชทกับราศีเมถุนใน Chatbot UI | รับความช่วยเหลือจากราศีเมถุนใน VSCode |
---|---|
โปรเจ็กต์นี้ได้รับแรงบันดาลใจจากแนวคิด LocalAI แต่มุ่งเน้นที่การทำให้ทุกคนเข้าถึง Vertex AI PaLM ของ Google Cloud Platform ได้มากขึ้น
มีการติดตั้งบริการ Google Cloud Run ที่แปลการเรียก OpenAI API เป็น Vertex AI (PaLM 2, Codey, Gemini)
บริการ OpenAI API ที่รองรับ:
OpenAI | เอพีไอ | รองรับ |
---|---|---|
รายการรุ่น | /v1/models | |
เสร็จสิ้นการแชท | /v1/chat/completions | |
ความสำเร็จ (เดิม) | /v1/completions | |
การฝัง | /v1/embeddings |
ซอฟต์แวร์นี้ได้รับการพัฒนาใน Python และใช้ FastAPI และ LangChain
ทุกอย่างได้รับการออกแบบให้เรียบง่ายมาก ดังนั้นคุณจึงสามารถปรับซอร์สโค้ดให้เหมาะกับความต้องการส่วนบุคคลของคุณได้อย่างง่ายดาย
เตรียมสมุดบันทึก Jupyter Vertex_AI_Chat.ipynb
พร้อมคำแนะนำทีละขั้นตอน ซึ่งจะช่วยให้คุณปรับใช้ API แบ็กเอนด์และส่วนหน้า Chatbot UI เป็นบริการ Google Cloud Run
ความต้องการ:
ผู้ใช้ของคุณ (ผู้ใช้ที่ใช้ในการปรับใช้) ต้องมีสิทธิ์ที่เหมาะสมในโปรเจ็กต์ เพื่อการปรับใช้ที่รวดเร็วและไม่ยุ่งยาก ขอแนะนำให้มีบทบาท "เจ้าของ"
นอกจากนี้ บัญชีบริการประมวลผลเริ่มต้น ( [PROJECT_NR][email protected]
) จะต้องมีบทบาท "ผู้ใช้ Role Vertex AI" ( roles/aiplatform.user
)
ตรวจสอบสิทธิ์:
gcloud auth login
ตั้งค่าโครงการเริ่มต้น:
gcloud config set project [PROJECT_ID]
เรียกใช้สคริปต์ต่อไปนี้เพื่อสร้างอิมเมจคอนเทนเนอร์และปรับใช้คอนเทนเนอร์นั้นเป็น API สาธารณะ (ซึ่งอนุญาตการโทรที่ไม่ผ่านการตรวจสอบสิทธิ์) ใน Google Cloud Run:
bash deploy.sh
หมายเหตุ: คุณสามารถเปลี่ยนคีย์ OpenAI API ปลอม ที่สร้างขึ้นและภูมิภาค Google Cloud ด้วยตัวแปรสภาพแวดล้อม:
export OPENAI_API_KEY= " sk-XYZ " export GOOGLE_CLOUD_LOCATION= " europe-west1 " bash deploy.sh
ซอฟต์แวร์ได้รับการทดสอบบน GNU/Linux และ macOS ด้วย Python 3.11 และ 3.12.3 (3.12.4 ไม่ทำงานในขณะนี้) หากคุณต้องการใช้ซอฟต์แวร์ภายใต้ Windows คุณต้องตั้งค่าตัวแปรสภาพแวดล้อมด้วย set
แทน export
คุณควรสร้างสภาพแวดล้อมเสมือนด้วยเวอร์ชันของ Python ที่คุณต้องการใช้ และเปิดใช้งานก่อนดำเนินการต่อ
คุณต้องมี Google Cloud CLI ด้วย Google Cloud CLI มีเครื่องมือบรรทัดคำสั่ง gcloud
เริ่มต้นสภาพแวดล้อมเสมือน Python และข้อกำหนดในการติดตั้ง:
python3 -m venv .venv &&
source .venv/bin/activate &&
pip install -r requirements.txt
ตรวจสอบสิทธิ์:
gcloud auth application-default login
ตั้งค่าโครงการเริ่มต้น:
gcloud auth application-default set-quota-project [PROJECT_ID]
รันด้วยโมเดลเริ่มต้น:
export DEBUG= " True "
export OPENAI_API_KEY= " sk-XYZ "
uvicorn vertex:app --reload
ตัวอย่างสำหรับวินโดวส์:
set DEBUG = True
set OPENAI_API_KEY = sk - XYZ
uvicorn vertex:app -- reload
วิ่งด้วยรุ่น Gemini gemini-pro
:
export DEBUG= " True "
export OPENAI_API_KEY= " sk-XYZ "
export MODEL_NAME= " gemini-pro "
uvicorn vertex:app --reload
รันด้วย Codey codechat-bison-32k
รุ่น:
export DEBUG= " True "
export OPENAI_API_KEY= " sk-XYZ "
export MODEL_NAME= " codechat-bison-32k "
export MAX_OUTPUT_TOKENS= " 16000 "
uvicorn vertex:app --reload
ขณะนี้แอปพลิเคชันจะทำงานบนเครื่องคอมพิวเตอร์ของคุณ คุณสามารถเข้าถึงได้โดยเปิดเว็บเบราว์เซอร์แล้วไปที่ที่อยู่ต่อไปนี้:
http://localhost:8000/
รูปแบบคำขอ HTTP และการตอบสนองสอดคล้องกับ OpenAI API
ตัวอย่างเช่น หากต้องการสร้างการแชทให้เสร็จสิ้น คุณสามารถส่งคำขอ POST ไปยังตำแหน่งข้อมูล /v1/chat/completions
โดยมีคำสั่งเป็นเนื้อหาคำขอ:
curl --location ' http://[ENDPOINT]/v1/chat/completions '
--header ' Content-Type: application/json '
--header ' Authorization: Bearer [API-KEY] '
--data ' {
"model": "gpt-3.5-turbo",
"messages": [
{
"role": "user",
"content": "Say this is a test!"
}
]
} '
การตอบสนอง:
{
"id" : " cmpl-efccdeb3d2a6cfe144fdde11 " ,
"created" : 1691577522 ,
"object" : " chat.completion " ,
"model" : " gpt-3.5-turbo " ,
"usage" : {
"prompt_tokens" : 0 ,
"completion_tokens" : 0 ,
"total_tokens" : 0
},
"choices" : [
{
"message" : {
"role" : " assistant " ,
"content" : " Sure, this is a test. "
},
"finish_reason" : " stop " ,
"index" : 0
}
]
}
ดาวน์โหลดการส่งออกสำหรับไคลเอนต์ Bruno API: bruno-export.json
การกำหนดค่าซอฟต์แวร์สามารถทำได้โดยใช้ตัวแปรสภาพแวดล้อม
มีตัวแปรต่อไปนี้พร้อมค่าเริ่มต้นอยู่:
ตัวแปร | ค่าเริ่มต้น | คำอธิบาย |
---|---|---|
ดีบัก | เท็จ | แสดงข้อความแก้ไขข้อบกพร่องที่ช่วยในระหว่างการพัฒนา |
GOOGLE_CLOUD_LOCATION | เรา-central1 | ภูมิภาค Google Cloud Platform สำหรับการเรียก API |
GOOGLE_CLOUD_PROJECT_ID | [DEFAULT_AUTH_PROJECT] | ตัวระบุสำหรับโครงการของคุณ หากไม่ได้ระบุ จะใช้โปรเจ็กต์การตรวจสอบสิทธิ์ |
เจ้าภาพ | 0.0.0.0 | ผูกซ็อกเก็ตกับโฮสต์นี้ |
MAX_OUTPUT_TOKENS | 512 | ขีดจำกัดโทเค็นจะกำหนดจำนวนข้อความสูงสุดที่ส่งออกจากพรอมต์เดียว ผู้ใช้ปลายทางสามารถแทนที่ได้ตามที่กำหนดโดยข้อกำหนด OpenAI API |
MODEL_NAME | แชทวัวกระทิง | หนึ่งในโมเดลพื้นฐานที่มีอยู่ใน Vertex AI |
OPENAI_API_KEY | sk-[สุ่ม_HEX] | คีย์ OpenAI API ปลอม ที่สร้างขึ้นเองซึ่งใช้สำหรับการตรวจสอบสิทธิ์กับแอปพลิเคชัน |
ท่าเรือ | 8000 | ผูกซ็อกเก็ตเข้ากับพอร์ตนี้ |
อุณหภูมิ | 0.2 | อุณหภูมิการสุ่มตัวอย่างจะควบคุมระดับการสุ่มในการเลือกโทเค็น ผู้ใช้ปลายทางสามารถแทนที่ได้ตามที่กำหนดโดยข้อกำหนด OpenAI API |
ท็อป_เค | 40 | วิธีที่โมเดลเลือกโทเค็นสำหรับเอาต์พุต โทเค็นถัดไปจะถูกเลือก |
ท็อป_พี | 0.8 | โทเค็นจะถูกเลือกจากความเป็นไปได้มากที่สุดไปน้อยที่สุดจนถึงผลรวม ผู้ใช้ปลายทางสามารถแทนที่ได้ตามที่กำหนดโดยข้อกำหนด OpenAI API |
หากแอปพลิเคชันของคุณใช้ไลบรารีไคลเอ็นต์ที่ OpenAI มอบให้ คุณจะต้องแก้ไขตัวแปรสภาพแวดล้อม OPENAI_API_BASE
เพื่อให้ตรงกับ URL ตำแหน่งข้อมูล Google Cloud Run ของคุณเท่านั้น:
export OPENAI_API_BASE= " https://openai-api-vertex-XYZ.a.run.app/v1 "
python your_openai_app.py
เมื่อปรับใช้แอปพลิเคชัน Chatbot UI ต้องตั้งค่าตัวแปรสภาพแวดล้อมต่อไปนี้:
ตัวแปร | ค่า |
---|---|
OPENAI_API_KEY | คีย์ API ที่สร้างขึ้นระหว่างการปรับใช้ |
OPENAI_API_HOST | URL ของ Google Cloud Run |
เรียกใช้สคริปต์ต่อไปนี้เพื่อสร้างอิมเมจคอนเทนเนอร์จากซอร์สโค้ด GitHub และทำให้คอนเทนเนอร์นั้นเป็นเว็บไซต์สาธารณะ (ซึ่งอนุญาตการโทรที่ไม่ผ่านการตรวจสอบสิทธิ์) ใน Google Cloud Run:
export OPENAI_API_KEY= " sk-XYZ "
export OPENAI_API_HOST= " https://openai-api-vertex-XYZ.a.run.app "
bash chatbot-ui.sh
ตั้งค่าการตั้งค่ากล่องแชทต่อไปนี้:
การตั้งค่า | ค่า |
---|---|
ผู้ให้บริการ AI | OpenAI API |
คีย์ OpenAI API | คีย์ API ที่สร้างขึ้นระหว่างการปรับใช้ |
โฮสต์ API | URL ของ Google Cloud Run |
ส่วนขยาย VSCode-OpenAI เป็นเครื่องมือทรงพลังและอเนกประสงค์ที่ออกแบบมาเพื่อรวมคุณสมบัติ OpenAI เข้ากับโปรแกรมแก้ไขโค้ดของคุณได้อย่างราบรื่น
หากต้องการเปิดใช้งานการตั้งค่า คุณมีสองตัวเลือก:
เลือก openai.com
และป้อน URL ของ Google Cloud Run ด้วย /v1
ระหว่างการตั้งค่า
เมื่อปรับใช้แอปพลิเคชัน Discord Bot ต้องตั้งค่าตัวแปรสภาพแวดล้อมต่อไปนี้:
ตัวแปร | ค่า |
---|---|
OPENAI_API_KEY | คีย์ API ที่สร้างขึ้นระหว่างการปรับใช้ |
OPENAI_API_BASE | URL ของ Google Cloud Run พร้อม /v1 |
เมื่อปรับใช้ ChatGPT ในแอปพลิเคชัน Slack ต้องตั้งค่าตัวแปรสภาพแวดล้อมต่อไปนี้:
ตัวแปร | ค่า |
---|---|
OPENAI_API_KEY | คีย์ API ที่สร้างขึ้นระหว่างการปรับใช้ |
OPENAI_API_BASE | URL ของ Google Cloud Run พร้อม /v1 |
เมื่อปรับใช้แอปพลิเคชัน ChatGPT Telegram Bot ต้องตั้งค่าตัวแปรสภาพแวดล้อมต่อไปนี้:
ตัวแปร | ค่า |
---|---|
OPENAI_API_KEY | คีย์ API ที่สร้างขึ้นระหว่างการปรับใช้ |
OPENAI_API_BASE | URL ของ Google Cloud Run พร้อม /v1 |
มีแพทช์ที่จะเป็นประโยชน์ต่อโครงการนี้หรือไม่? สุดยอด! ทำตามขั้นตอนเหล่านี้เพื่อให้ยอมรับ
ไฟล์ทั้งหมดในพื้นที่เก็บข้อมูลนี้อยู่ภายใต้ Apache License เวอร์ชัน 2.0 เว้นแต่จะระบุไว้เป็นอย่างอื่น