Skip to content

არხები

PRX კომუნიკაციას ახორციელებს არხების საშუალებით — შეტყობინებების ინტეგრაციები, რომლებიც ახორციელებენ საერთო Channel თვისებას. ყოველი არხი უშვებს საკუთარ მსმენელის ციკლს, ინახავს თითოეული გამომგზავნის საუბრის ისტორიას და ახორციელებს დამოუკიდებელ წვდომის პოლიტიკებს.

მხარდაჭერილი არხები

Section titled “მხარდაჭერილი არხები”
არხიბექენდიპროტოკოლიშენიშვნები
Signal (CLI)signal-cliD-Bus / JSON-RPCCLI-ზე დაფუძნებული Signal კლიენტი
Signal (ნეიტივი)libsignalSignal პროტოკოლინეიტივ Rust იმპლემენტაცია
WhatsApp (whatsmeow)whatsmeow ხიდიWebSocketGo-ზე დაფუძნებული WhatsApp Web ხიდი
WhatsApp (wacli)wacliCLIმსუბუქი WhatsApp CLI
WhatsApp (wa-rs)wa-rsნეიტივისუფთა Rust WhatsApp კლიენტი
TelegramteloxideBot APIსრული ბოტ API მხარდაჭერა
DiscordserenityGateway WebSocketSlash ბრძანებები და შეტყობინების მოვლენები
Slackslack-morphismEvents API + WebSocketBolt-თან თავსებადი მოვლენების დამუშავება
Matrixmatrix-sdkClient-Server APIსრული E2EE მხარდაჭერა vodozemac-ით
iMessageapplescript / imessage-rsAppleScript / BlueBubblesმხოლოდ macOS
IRCirc crateIRC პროტოკოლისტანდარტული IRC TLS-ით
ელფოსტაIMAP + SMTPIMAP IDLE / გამოკითხვაHTML და დანართების მხარდაჭერა
DingTalkDingTalk Open APIHTTP ვებჰუკი + WebSocketჩინეთის საწარმოო შეტყობინებები
Lark / FeishuLark Open APIHTTP ვებჰუკი + WebSocketBytedance-ის საწარმოო პაკეტი
QQOpenShamrock / LagrangeOneBot v11QQ ბოტი რევერს WebSocket-ით
MattermostMattermost APIWebSocket + RESTთვითჰოსტინგის გუნდური ჩატი
Nextcloud TalkNextcloud Talk APIგამოკითხვათვითჰოსტინგის თანამშრომლობა
LinQLinQ პროტოკოლიმორგებულიშიდა შეტყობინებების პროტოკოლი
CLIstdin/stdoutTTYლოკალური ინტერაქტიული რეჟიმი

არხის კონფიგურაცია

Section titled “არხის კონფიგურაცია”

ყოველი არხი კონფიგურირებულია დამოუკიდებლად წვდომის კონტროლის პოლიტიკებით:

[channels.telegram]
enabled = true
token = "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 რიგში და მუშავდება ადგილების გათავისუფლებისას.

PRX აქვეყნებს HTTP gateway-ს არხებისთვის, რომლებიც კომუნიკაციას ახორციელებენ ვებჰუკებით მუდმივი კავშირების ნაცვლად. ამას იყენებს:

  • DingTalk (მოვლენის გამოწერის გამოძახებები)
  • Lark / Feishu (მოვლენის გამოწერის გამოძახებები)
  • Slack (Events API რეჟიმი)
  • მორგებული ინტეგრაციები, რომლებიც POST-ს აგზავნიან PRX-ზე HTTP-ით

Gateway ამოწმებს შემავალი ვებჰუკის ხელმოწერებს, ასახავს პეილოადებს შიდა შეტყობინების ფორმატში და მიმართავს მათ შეტყობინების ნაკადის იმავე პაიპლაინში.