LLM პროვაიდერები
PRX დიდ ენობრივ მოდელებთან პროვაიდერების მეშვეობით უკავშირდება -- ესენია ჩართვადი ბექენდები, რომლებიც Provider ტრეიტს ახორციელებს. თითოეული პროვაიდერი მართავს ავთენტიფიკაციას, მოთხოვნის ფორმატირებას, სტრიმინგსა და შეცდომების კლასიფიკაციას კონკრეტული LLM API-სთვის.
PRX-ს გააჩნია 9 ჩაშენებული პროვაიდერი, OpenAI-თავსებადი ენდფოინთი მესამე მხარის სერვისებისთვის, და ინფრასტრუქტურა სარეზერვო ჯაჭვებისა და ინტელექტუალური მარშრუტიზაციისთვის.
შესაძლებლობების მატრიცა
| პროვაიდერი | ძირითადი მოდელები | სტრიმინგი | ხედვა | ინსტრუმენტები | OAuth | თვითჰოსტინგი |
|---|---|---|---|---|---|---|
| Anthropic | Claude Opus 4, Claude Sonnet 4 | დიახ | დიახ | დიახ | დიახ (Claude Code) | არა |
| OpenAI | GPT-4o, o1, o3 | დიახ | დიახ | დიახ | არა | არა |
| Google Gemini | Gemini 2.0 Flash, Gemini 1.5 Pro | დიახ | დიახ | დიახ | დიახ (Gemini CLI) | არა |
| OpenAI Codex | Codex მოდელები | დიახ | არა | დიახ | დიახ | არა |
| GitHub Copilot | Copilot Chat მოდელები | დიახ | არა | დიახ | დიახ (Device Flow) | არა |
| Ollama | Llama 3, Mistral, Qwen, ნებისმიერი GGUF | დიახ | დამოკიდებულია მოდელზე | დიახ | არა | დიახ |
| AWS Bedrock | Claude, Titan, Llama | დიახ | დამოკიდებულია მოდელზე | დამოკიდებულია მოდელზე | AWS IAM | არა |
| GLM | GLM-4, Zhipu, Minimax, Moonshot, Qwen, Z.AI | დიახ | დამოკიდებულია მოდელზე | დამოკიდებულია მოდელზე | დიახ (Minimax/Qwen) | არა |
| OpenRouter | 200+ მოდელი მრავალი მომწოდებლისგან | დიახ | დამოკიდებულია მოდელზე | დამოკიდებულია მოდელზე | არა | არა |
| მორგებული თავსებადი | ნებისმიერი OpenAI-თავსებადი API | დიახ | დამოკიდებულია ენდფოინთზე | დამოკიდებულია ენდფოინთზე | არა | დიახ |
სწრაფი კონფიგურაცია
პროვაიდერები კონფიგურირდება ~/.config/openprx/config.toml (ან ~/.openprx/config.toml) ფაილში. მინიმუმ მიუთითეთ ნაგულისხმევი პროვაიდერი და API გასაღები:
# ნაგულისხმევი პროვაიდერისა და მოდელის არჩევა
default_provider = "anthropic"
default_model = "anthropic/claude-sonnet-4-6"
default_temperature = 0.7
# API გასაღები (ასევე შეიძლება ANTHROPIC_API_KEY env ცვლადით)
api_key = "sk-ant-..."თვითჰოსტინგის პროვაიდერებისთვის, როგორიცაა Ollama, მიუთითეთ ენდფოინთი:
default_provider = "ollama"
default_model = "llama3:70b"
api_url = "http://localhost:11434"თითოეული პროვაიდერი API გასაღებს შემდეგი თანმიმდევრობით წყვეტს:
api_keyველიconfig.toml-ში- პროვაიდერისთვის სპეციფიკური გარემოს ცვლადი (მაგ.,
ANTHROPIC_API_KEY,OPENAI_API_KEY) - ზოგადი
API_KEYგარემოს ცვლადი
იხილეთ გარემოს ცვლადები მხარდაჭერილი ცვლადების სრული სიისთვის.
სარეზერვო ჯაჭვები ReliableProvider-ით
PRX პროვაიდერის გამოძახებებს ReliableProvider ფენაში ახვევს, რომელიც უზრუნველყოფს:
- ავტომატურ ხელახალ ცდას ექსპონენციალური უკანდახევით დროებითი შეფერხებებისთვის (5xx, 429 რეიტ ლიმიტები, ქსელის ტაიმაუტები)
- სარეზერვო ჯაჭვებს -- როდესაც ძირითადი პროვაიდერი ვერ ახერხებს, მოთხოვნები ავტომატურად გადამისამართდება ჯაჭვის შემდეგ პროვაიდერზე
- არახელახალცდადი შეცდომების გამოვლენას -- კლიენტის შეცდომები, როგორიცაა არასწორი API გასაღებები (401/403) და უცნობი მოდელები (404), სწრაფად ფეილდება ხელახალი ცდების ხარჯვის გარეშე
საიმედოობის კონფიგურაცია [reliability] სექციაში:
[reliability]
max_retries = 3
fallback_providers = ["openai", "gemini"]როდესაც ძირითადი პროვაიდერი (მაგ., Anthropic) დროებით შეცდომას აბრუნებს, PRX ხელახლა ცდის max_retries-ჯერ უკანდახევით. თუ ყველა ცდა ამოიწურა, ის გადაინაცვლებს პირველ სარეზერვო პროვაიდერზე. სარეზერვო ჯაჭვი გრძელდება წარმატებულ პასუხამდე ან ყველა პროვაიდერის ამოწურვამდე.
შეცდომების კლასიფიკაცია
ReliableProvider შეცდომებს ორ კატეგორიად ყოფს:
- ხელახალცდადი: HTTP 5xx, 429 (რეიტ ლიმიტი), 408 (ტაიმაუტი), ქსელის შეცდომები
- არახელახალცდადი: HTTP 4xx (429/408-ის გარდა), არასწორი API გასაღებები, უცნობი მოდელები, დეფორმირებული პასუხები
არახელახალცდადი შეცდომები ხელახალ ცდებს გამოტოვებენ და დაუყოვნებლივ გადადიან შემდეგ პროვაიდერზე, რითაც ზედმეტ შეყოვნებას თავიდან იცილებენ.
მარშრუტიზატორის ინტეგრაცია
გაფართოებული მრავალმოდელიანი კონფიგურაციებისთვის, PRX მხარს უჭერს ევრისტიკულ LLM მარშრუტიზატორს, რომელიც ირჩევს ოპტიმალურ პროვაიდერსა და მოდელს თითოეული მოთხოვნისთვის, ეფუძნება:
- შესაძლებლობების ქულას -- მოთხოვნის სირთულეს მოდელის ძლიერ მხარეებს ადარებს
- Elo რეიტინგს -- დროთა განმავლობაში მოდელის წარმადობას აკვირდება
- ხარჯების ოპტიმიზაციას -- მარტივი მოთხოვნებისთვის იაფ მოდელებს ანიჭებს უპირატესობას
- შეყოვნების წონას -- პასუხის დროს ითვალისწინებს
- KNN სემანტიკურ მარშრუტიზაციას -- ისტორიული მოთხოვნების ემბედინგებს იყენებს მსგავსებაზე დაფუძნებული მარშრუტიზაციისთვის
- Automix ესკალაციას -- იწყებს იაფი მოდელით და ესკალაციას ახდენს პრემიუმ მოდელზე, როდესაც საიმედოობა დაბალია
[router]
enabled = true
knn_enabled = true
[router.automix]
enabled = true
confidence_threshold = 0.7
premium_model_id = "anthropic/claude-sonnet-4-6"იხილეთ მარშრუტიზატორის კონფიგურაცია სრული დეტალებისთვის.