ภาษา จีนง่ายๆ
คู่มือผู้ใช้
สำคัญ
จะมีการปรับเปลี่ยนที่สำคัญในการกำหนดค่าหลังจาก v0.7.0 และจะไม่เข้ากันกับเวอร์ชันก่อนหน้า มันสะดวกกว่าในการกำหนดค่าผ่าน UI และมีตัวเลือกการกำหนดค่าที่ทรงพลังมากขึ้น
Openai-Forward เป็นบริการส่งต่อที่มีประสิทธิภาพสำหรับรุ่นภาษาขนาดใหญ่ ฟังก์ชั่นหลักของมันรวมถึงการควบคุมอัตราการร้องขอผู้ใช้การ จำกัด อัตราโทเค็นการแคชการทำนายอัจฉริยะการจัดการบันทึกและการจัดการคีย์ API ฯลฯ โดยมีจุดประสงค์เพื่อให้บริการส่งต่อแบบจำลองที่มีประสิทธิภาพและสะดวกสบาย ไม่ว่าจะเป็นโมเดลภาษาท้องถิ่นพร็อกซีหรือรูปแบบภาษาคลาวด์เช่น Localai หรือ OpenAI ก็สามารถนำไปใช้งานได้ง่ายโดย OpenAI ไปข้างหน้า ต้องขอบคุณการสนับสนุนของห้องสมุดเช่น Uvicorn, Aiohttp และ Asyncio ทำให้ Openai-Forward ประสบความสำเร็จในการแสดงแบบอะซิงโครนัสที่ยอดเยี่ยม
ที่อยู่บริการตัวแทนที่สร้างโดยโครงการนี้:
ที่อยู่บริการ Openai ดั้งเดิม
https://api.openai-forward.com
https://render.openai-forward.com
ที่อยู่บริการที่เปิดใช้งานแคช (ผลการร้องขอผู้ใช้จะถูกบันทึกเป็นระยะเวลาหนึ่ง)
https://smart.openai-forward.com
ปรับใช้เอกสาร
ติดตั้ง
pip install openai-forward
# 或安装webui版本:
pip install openai-forward[webui]
เริ่มบริการ
aifd run
# 或启动带webui的服务
aifd run --webui
หากคุณอ่านการกำหนดค่า .env
ของเส้นทางรูทคุณจะเห็นข้อมูลการเริ่มต้นต่อไปนี้
❯ aifd run
╭────── ? openai-forward is ready to serve ! ───────╮
│ │
│ base url https://api.openai.com │
│ route prefix / │
│ api keys False │
│ forward keys False │
│ cache_backend MEMORY │
╰────────────────────────────────────────────────────╯
╭──────────── ⏱️ Rate Limit configuration ───────────╮
│ │
│ backend memory │
│ strategy moving-window │
│ global rate limit 100/minute (req) │
│ /v1/chat/completions 100/2minutes (req) │
│ /v1/completions 60/minute ; 600/hour (req) │
│ /v1/chat/completions 60/second (token) │
│ /v1/completions 60/second (token) │
╰────────────────────────────────────────────────────╯
INFO: Started server process [191471]
INFO: Waiting for application startup.
INFO: Application startup complete.
INFO: Uvicorn running on http://0.0.0.0:8000 (Press CTRL+C to quit)
ตัวเลือกเริ่มต้นสำหรับ aifd run
คือพร็อกซี https://api.openai.com
ต่อไปนี้เป็นตัวอย่างของที่อยู่บริการที่จัดตั้งขึ้น https://api.openai-forward.com
งูหลาม
from openai import OpenAI # pip install openai>=1.0.0
client = OpenAI(
+ base_url="https://api.openai-forward.com/v1",
api_key="sk-******"
)
สถานการณ์ที่เกี่ยวข้อง: ใช้กับ Localai, Api-for-Open-LLM และโครงการอื่น ๆ
วิธีการทำ: นำ FORWARD_CONFIG=[{"base_url":"http://localhost:8080","route":"/localai","type":"openai"}]
เป็นตัวอย่าง จากนั้นคุณสามารถใช้ localai ได้โดยไปที่ http: // localhost: 8000/localai
(มากกว่า)
กำหนดค่าตัวแปรสภาพแวดล้อมหรือไฟล์. ENV ดังนี้:
FORWARD_CONFIG = [{"base_url":"https://generativelanguage.googleapis.com","route":"/gemini","type":"general"}]
หมายเหตุ: หลังจากเริ่ม aidf run
คุณสามารถใช้ Gemini Pro ได้โดยไปที่ http: // localhost: 8000/gemini
สถานการณ์ที่ 1: ใช้การส่งต่อสากลเพื่อส่งต่อบริการจากแหล่งใด ๆ และคุณสามารถรับการควบคุมอัตราการร้องขอและการควบคุมอัตราโทเค็น
สถานการณ์ที่ 2: รูปแบบ API ของรุ่นคลาวด์หลายรุ่นสามารถแปลงเป็นรูปแบบ API ของ OpenAI ผ่าน Litellm จากนั้นส่งต่อโดยใช้สไตล์ OpenAI
(มากกว่า)
ดำเนินการ aifd run --webui
เพื่อป้อนหน้าการกำหนดค่า (ที่อยู่บริการเริ่มต้น http: // localhost: 8001)
คุณสามารถสร้างไฟล์. ENV ในไดเรกทอรี RUN ของโครงการเพื่อปรับแต่งการกำหนดค่าต่างๆ ไฟล์. env.example ในไดเรกทอรีรูทสามารถดูได้ในการกำหนดค่าอ้างอิง
หลังจากเปิดใช้งานแคชเนื้อหาของเส้นทางที่ระบุจะถูกแคชและประเภทการส่งต่อคือ openai
และ general
ตาม general
และพฤติกรรมจะแตกต่างกันเล็กน้อย
เมื่อใช้การส่งต่อ openai
หลังจากเปิดแคชคุณสามารถใช้พารามิเตอร์ extra_body
ของ OpenAI เพื่อควบคุมพฤติกรรมแคชเช่น
งูหลาม
from openai import OpenAI
client = OpenAI(
+ base_url="https://smart.openai-forward.com/v1",
api_key="sk-******"
)
completion = client.chat.completions.create(
model="gpt-3.5-turbo",
messages=[
{"role": "user", "content": "Hello!"}
],
+ extra_body={"caching": True}
)
ขด
curl https://smart.openai.com/v1/chat/completions
-H " Content-Type: application/json "
-H " Authorization: Bearer sk-****** "
-d ' {
"model": "gpt-3.5-turbo",
"messages": [{"role": "user", "content": "Hello!"}],
"caching": true
} '
ดูไฟล์. env
ใช้กรณี:
import openai
+ openai.api_base = "https://api.openai-forward.com/v1"
- openai.api_key = "sk-******"
+ openai.api_key = "fk-******"
ดู .env.example
สำหรับการใช้กรณีการใช้งานสำหรับการส่งต่อบริการที่มีที่อยู่ต่างกันไปยังเส้นทางที่แตกต่างกันไปยังพอร์ตเดียวกัน
เส้นทางบันทึกอยู่ในเส้นทาง Log/openai/chat/chat.log
ในไดเรกทอรีปัจจุบัน
รูปแบบบันทึกคือ
{'messages': [{'role': 'user', 'content': 'hi'}], 'model': 'gpt-3.5-turbo', 'stream': True, 'max_tokens': None, 'n': 1, 'temperature': 1, 'top_p': 1, 'logit_bias': None, 'frequency_penalty': 0, 'presence_penalty': 0, 'stop': None, 'user': None, 'ip': '127.0.0.1', 'uid': '2155fe1580e6aed626aa1ad74c1ce54e', 'datetime': '2023-10-17 15:27:12'}
{'assistant': 'Hello! How can I assist you today?', 'is_tool_calls': False, 'uid': '2155fe1580e6aed626aa1ad74c1ce54e'}
แปลงเป็นรูปแบบ json
:
aifd convert
รับ chat_openai.json
:
[
{
"datetime" : " 2023-10-17 15:27:12 " ,
"ip" : " 127.0.0.1 " ,
"model" : " gpt-3.5-turbo " ,
"temperature" : 1 ,
"messages" : [
{
"user" : " hi "
}
],
"tools" : null ,
"is_tool_calls" : false ,
"assistant" : " Hello! How can I assist you today? "
}
]
การมีส่วนร่วมในโครงการนี้ยินดีต้อนรับโดยการส่งคำขอดึงหรือตั้งคำถามในที่เก็บ
Openai-Forward ใช้ใบอนุญาต MIT