არხები
PRX კომუნიკაციას ახორციელებს არხების საშუალებით — შეტყობინებების ინტეგრაციები, რომლებიც ახორციელებენ საერთო Channel თვისებას. ყოველი არხი უშვებს საკუთარ მსმენელის ციკლს, ინახავს თითოეული გამომგზავნის საუბრის ისტორიას და ახორციელებს დამოუკიდებელ წვდომის პოლიტიკებს.
მხარდაჭერილი არხები
Section titled “მხარდაჭერილი არხები”| არხი | ბექენდი | პროტოკოლი | შენიშვნები |
|---|---|---|---|
| Signal (CLI) | signal-cli | D-Bus / JSON-RPC | CLI-ზე დაფუძნებული Signal კლიენტი |
| Signal (ნეიტივი) | libsignal | Signal პროტოკოლი | ნეიტივ Rust იმპლემენტაცია |
| WhatsApp (whatsmeow) | whatsmeow ხიდი | WebSocket | Go-ზე დაფუძნებული WhatsApp Web ხიდი |
| WhatsApp (wacli) | wacli | CLI | მსუბუქი WhatsApp CLI |
| WhatsApp (wa-rs) | wa-rs | ნეიტივი | სუფთა Rust WhatsApp კლიენტი |
| Telegram | teloxide | Bot API | სრული ბოტ API მხარდაჭერა |
| Discord | serenity | Gateway WebSocket | Slash ბრძანებები და შეტყობინების მოვლენები |
| Slack | slack-morphism | Events API + WebSocket | Bolt-თან თავსებადი მოვლენების დამუშავება |
| Matrix | matrix-sdk | Client-Server API | სრული E2EE მხარდაჭერა vodozemac-ით |
| iMessage | applescript / imessage-rs | AppleScript / BlueBubbles | მხოლოდ macOS |
| IRC | irc crate | IRC პროტოკოლი | სტანდარტული IRC TLS-ით |
| ელფოსტა | IMAP + SMTP | IMAP IDLE / გამოკითხვა | HTML და დანართების მხარდაჭერა |
| DingTalk | DingTalk Open API | HTTP ვებჰუკი + WebSocket | ჩინეთის საწარმოო შეტყობინებები |
| Lark / Feishu | Lark Open API | HTTP ვებჰუკი + WebSocket | Bytedance-ის საწარმოო პაკეტი |
| OpenShamrock / Lagrange | OneBot v11 | QQ ბოტი რევერს WebSocket-ით | |
| Mattermost | Mattermost API | WebSocket + REST | თვითჰოსტინგის გუნდური ჩატი |
| Nextcloud Talk | Nextcloud Talk API | გამოკითხვა | თვითჰოსტინგის თანამშრომლობა |
| LinQ | LinQ პროტოკოლი | მორგებული | შიდა შეტყობინებების პროტოკოლი |
| CLI | stdin/stdout | TTY | ლოკალური ინტერაქტიული რეჟიმი |
არხის კონფიგურაცია
Section titled “არხის კონფიგურაცია”ყოველი არხი კონფიგურირებულია დამოუკიდებლად წვდომის კონტროლის პოლიტიკებით:
[channels.telegram]enabled = truetoken = "BOT_TOKEN"
# DM პოლიტიკა: ვის შეუძლია ბოტს პირდაპირ შეტყობინებაdm_policy = "allowlist" # "allowlist" | "open" | "disabled"dm_allowlist = [123456789, 987654321]
# ჯგუფის პოლიტიკა: რომელ ჯგუფებში პასუხობს ბოტიgroup_policy = "allowlist" # "allowlist" | "open" | "disabled"group_allowlist = [-1001234567890]
# გამომგზავნის ნებართვების სია (ვრცელდება DM-ზეც და ჯგუფზეც)sender_allowlist = ["user_id_1", "user_id_2"]პოლიტიკის რეჟიმები
Section titled “პოლიტიკის რეჟიმები”| პოლიტიკა | ქცევა |
|---|---|
allowlist | მხოლოდ ექსპლიციტურად ჩამოთვლილ მომხმარებლებს/ჯგუფებს შეუძლიათ ინტერაქცია |
open | ყველას შეუძლია ინტერაქცია (გამოიყენეთ სიფრთხილით) |
disabled | არხის მიმართულება (DM ან ჯგუფი) მთლიანად გამორთულია |
შეტყობინების ნაკადი
Section titled “შეტყობინების ნაკადი”ყოველი შემავალი შეტყობინება მიჰყვება ამ პაიპლაინს:
არხის მსმენელის ციკლი │ ├─ 1. შეტყობინების მიღება პლატფორმიდან │ ├─ 2. პოლიტიკის შემოწმება (dm_policy / group_policy / sender_allowlist) │ უარყოფილი → ჩუმად იგდება │ ├─ 3. გამომგზავნის ისტორიის ძებნა │ ყოველი გამომგზავნი ინახავს 50 შეტყობინების მოცურავე ფანჯარას │ ├─ 4. კონკურენტულობის კონტროლი │ მაქსიმუმ 4 პარალელური მოთხოვნა არხზე │ ზედმეტი მოთხოვნები რიგში დგება │ ├─ 5. ტაიმაუტის ბიუჯეტი │ მოთხოვნაზე ტაიმაუტი LLM-ის გაჭედვის თავიდან ასაცილებლად │ ├─ 6. მარშრუტიზაცია LLM-ზე როუტერის საშუალებით │ განზრახვის კლასიფიკაცია → მოდელის შერჩევა → გენერაცია │ ├─ 7. პასუხის გაგზავნა არხში │ ├─ 8. მეხსიერების ავტოშენახვა │ მნიშვნელოვანი საუბრები ინახება prx-memory-ში │ └─ 9. ისტორიის შეკუმშვა როცა ისტორია აჭარბებს 50 შეტყობინებას, ძველი ჩანაწერები შეჯამდება და შეკუმშავს კონტექსტის ხარისხის შესანარჩუნებლადსაუბრის ისტორია
Section titled “საუბრის ისტორია”PRX ინახავს თითოეული გამომგზავნის საუბრის ბუფერს ბოლო 50 შეტყობინებით. ეს არ არის მარტივი შეკვეცა:
- შეტყობინებები ინახება დროის ნიშნებით, როლით (მომხმარებელი/ასისტენტი) და არხის მეტამონაცემებით
- როცა ბუფერი ივსება, უძველესი შეტყობინებები შეკუმშავს შეჯამებაში
- შეჯამება ემატება ისტორიის თავში, რათა კონტექსტი შეინარჩუნდეს ტოკენების სრული ფანჯრის მოხმარების გარეშე
- ისტორია იზოლირებულია გამომგზავნის მიხედვით — საუბრები არ ჟონავს მომხმარებლებს შორის
კონკურენტულობის კონტროლი
Section titled “კონკურენტულობის კონტროლი”ყოველი არხი ახორციელებს მაქსიმუმ 4 პარალელურ LLM მოთხოვნას. ეს თავიდან აცილებს:
- LLM პროვაიდერებზე მოთხოვნის ლიმიტების ამოწურვას
- მეხსიერების ზეწოლას ძალიან ბევრი ერთდროული კონტექსტის ფანჯრიდან
- პლატფორმის მხრიდან შეზღუდვას სწრაფი პასუხის ნაკადებისგან
კონკურენტულობის ლიმიტის მიღმა მოთხოვნები ინახება FIFO რიგში და მუშავდება ადგილების გათავისუფლებისას.
Gateway HTTP სერვერი
Section titled “Gateway HTTP სერვერი”PRX აქვეყნებს HTTP gateway-ს არხებისთვის, რომლებიც კომუნიკაციას ახორციელებენ ვებჰუკებით მუდმივი კავშირების ნაცვლად. ამას იყენებს:
- DingTalk (მოვლენის გამოწერის გამოძახებები)
- Lark / Feishu (მოვლენის გამოწერის გამოძახებები)
- Slack (Events API რეჟიმი)
- მორგებული ინტეგრაციები, რომლებიც POST-ს აგზავნიან PRX-ზე HTTP-ით
Gateway ამოწმებს შემავალი ვებჰუკის ხელმოწერებს, ასახავს პეილოადებს შიდა შეტყობინების ფორმატში და მიმართავს მათ შეტყობინების ნაკადის იმავე პაიპლაინში.