Skip to content
ეს გვერდი შეიქმნა და ითარგმნა ხელოვნური ინტელექტის დახმარებით. თუ შეამჩნევთ უზუსტობას, გთხოვთ, დაგვეხმარეთ გაუმჯობესებაში. GitHub-ზე რედაქტირება

არხები

არხები არის შეტყობინებების პლატფორმების ინტეგრაციები, რომლებიც PRX-ს გარე სამყაროსთან აკავშირებს. თითოეული არხი ახორციელებს ერთიან ინტერფეისს შეტყობინებების გაგზავნისა და მიღების, მედიის დამუშავების, აკრეფის ინდიკატორების მართვისა და ჯანმრთელობის შემოწმების ჩატარებისთვის. PRX-ს შეუძლია ერთდროულად რამდენიმე არხის გაშვება ერთი დემონის პროცესიდან.

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

PRX მხარს უჭერს 19 შეტყობინებების არხს, რომელიც მოიცავს სამომხმარებლო პლატფორმებს, საწარმოო ინსტრუმენტებს, ღია კოდის პროტოკოლებსა და დეველოპერის ინტერფეისებს.

არხების შედარების მატრიცა

არხიპირადიჯგუფიმედიახმაE2EEპლატფორმასტატუსი
Telegramდიახდიახდიახარაარაკროსპლატფორმულისტაბილური
Discordდიახდიახდიახარაარაკროსპლატფორმულისტაბილური
Slackდიახდიახდიახარაარაკროსპლატფორმულისტაბილური
WhatsAppდიახდიახდიახარადიახCloud APIსტაბილური
WhatsApp Webდიახდიახდიახარადიახმრავალმოწყობილობაბეტა
Signalდიახდიახდიახარადიახკროსპლატფორმულისტაბილური
iMessageდიახდიახდიახარადიახმხოლოდ macOSბეტა
Matrixდიახდიახდიახარადიახფედერაციულისტაბილური
EmailდიახარადიახარაარაIMAP/SMTPსტაბილური
Lark / Feishuდიახდიახდიახარაარაკროსპლატფორმულისტაბილური
DingTalkდიახდიახდიახარაარაკროსპლატფორმულისტაბილური
QQდიახდიახდიახარაარაკროსპლატფორმულიბეტა
Mattermostდიახდიახდიახარაარათვითჰოსტინგისტაბილური
Nextcloud Talkდიახდიახდიახარაარათვითჰოსტინგიბეტა
IRCდიახდიახარაარაარაფედერაციულისტაბილური
LINQდიახდიახდიახარაარაPartner APIალფა
CLIდიახარაარაარაN/Aტერმინალისტაბილური
TerminalდიახარაარაარაN/Aტერმინალისტაბილური
WacliდიახდიახდიახარადიახJSON-RPCბეტა

ლეგენდა:

  • სტაბილური -- პროდაქშენისთვის მზა, სრულად ტესტირებული
  • ბეტა -- ფუნქციონალური, ცნობილი შეზღუდვებით
  • ალფა -- ექსპერიმენტული, API შეიძლება შეიცვალოს

კონფიგურაციის საერთო შაბლონი

ყველა არხი კონფიგურირებულია ~/.config/openprx/openprx.toml ფაილის [channels] სექციაში. თითოეულ არხს აქვს საკუთარი ქვესექცია პლატფორმისთვის სპეციფიკური პარამეტრებით.

ძირითადი სტრუქტურა

toml
[channels]
# ჩაშენებული CLI არხის ჩართვა (ნაგულისხმევი: true)
cli = true

# შეტყობინების დამუშავების ტაიმაუტი წამებში (ნაგულისხმევი: 300)
message_timeout_secs = 300

# ── Telegram ──────────────────────────────────────────────
[channels.telegram]
bot_token = "123456789:ABCdefGHIjklMNOpqrsTUVwxyz"
allowed_users = ["alice", "bob"]
stream_mode = "edit"            # "edit" | "append" | "none"
mention_only = false

# ── Discord ───────────────────────────────────────────────
[channels.discord]
bot_token = "MTIzNDU2Nzg5.XXXXXX.XXXXXXXXXX"
guild_id = "1234567890"         # არასავალდებულო: შეზღუდვა ერთ სერვერზე
allowed_users = []              # ცარიელი = ყველა ნებადართული
listen_to_bots = false
mention_only = false

# ── Slack ─────────────────────────────────────────────────
[channels.slack]
bot_token = "xoxb-..."
app_token = "xapp-..."
allowed_users = []
mention_only = true

არხის სპეციფიკური მაგალითები

Lark / Feishu:

toml
[channels.lark]
app_id = "cli_xxxxxxxxxxxx"
app_secret = "xxxxxxxxxxxxxxxxxxxxxxxx"
allowed_users = []
use_feishu = false              # true Feishu-სთვის (ჩინეთი), false Lark-ისთვის (საერთაშორისო)
receive_mode = "websocket"      # "websocket" | "webhook"
mention_only = false

Signal:

toml
[channels.signal]
phone_number = "+1234567890"
signal_cli_path = "/usr/local/bin/signal-cli"
allowed_users = ["+1987654321"]

Matrix (E2EE-ით):

toml
[channels.matrix]
homeserver_url = "https://matrix.org"
username = "@prx-bot:matrix.org"
password = "secure-password"
allowed_users = ["@alice:matrix.org"]

Email (IMAP/SMTP):

toml
[channels.email]
imap_host = "imap.gmail.com"
imap_port = 993
smtp_host = "smtp.gmail.com"
smtp_port = 587
username = "[email protected]"
password = "app-specific-password"
allowed_from = ["[email protected]"]

DingTalk:

toml
[channels.dingtalk]
app_key = "dingxxxxxxxxxxxxxxxx"
app_secret = "xxxxxxxxxxxxxxxxxxxxxxxx"
robot_code = "dingxxxxxxxxx"
allowed_users = []

პირადი შეტყობინებების პოლიტიკა

PRX უზრუნველყოფს დეტალურ კონტროლს იმაზე, თუ ვის შეუძლია თქვენს აგენტს პირადი შეტყობინებების გაგზავნა. პირადი შეტყობინებების პოლიტიკა კონფიგურირდება თითოეული არხისთვის და განსაზღვრავს, როგორ დამუშავდება შემომავალი პირადი შეტყობინებები.

პოლიტიკის ტიპები

პოლიტიკაქცევა
pairingმოითხოვს დაწყვილების ხელის ჩამორთმევას (handshake) გამგზავნის მიღებამდე. მომხმარებელმა უნდა დაასრულოს გამოწვევა-პასუხის ნაკადი ავთენტიფიკაციისთვის. მომავალი ფუნქცია -- ამჟამად უკან ბრუნდება allowlist-ზე.
allowlist(ნაგულისხმევი) მხოლოდ არხის allowed_users მასივში ჩამოთვლილ გამგზავნებს შეუძლიათ აგენტთან ურთიერთობა. სიაში არ მყოფი გამგზავნების შეტყობინებები ჩუმად იგნორირდება.
openნებისმიერ მომხმარებელს შეუძლია აგენტისთვის პირადი შეტყობინებების გაგზავნა. პროდაქშენში სიფრთხილით გამოიყენეთ.
disabledყველა პირადი შეტყობინება იგნორირდება. სასარგებლოა, როდესაც PRX მხოლოდ ჯგუფებში უნდა პასუხობდეს.

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

პირადი შეტყობინებების პოლიტიკა არხების კონფიგურაციის ზედა დონეზე დგინდება:

toml
[channels]
dm_policy = "allowlist"         # "pairing" | "allowlist" | "open" | "disabled"

თითოეული არხის allowed_users მასივი არის ამ არხის ნებადართული სია:

toml
[channels.telegram]
bot_token = "..."
allowed_users = ["alice", "bob"]  # მხოლოდ ეს მომხმარებლები შეძლებენ პირად შეტყობინებებს

dm_policy = "open"-ის შემთხვევაში allowed_users ველი იგნორირდება და ყველა გამგზავნი მიიღება.

ჯგუფის პოლიტიკა

პირადი შეტყობინებების პოლიტიკის მსგავსად, PRX აკონტროლებს, რომელ ჯგუფურ საუბრებში მონაწილეობს აგენტი:

პოლიტიკაქცევა
allowlist(ნაგულისხმევი) მხოლოდ არხის ჯგუფების ნებადართულ სიაში მყოფი ჯგუფები მონიტორინგდება.
openაგენტი პასუხობს ნებისმიერ ჯგუფში, სადაც დამატებულია.
disabledყველა ჯგუფური შეტყობინება იგნორირდება.
toml
[channels]
group_policy = "allowlist"

[channels.telegram]
bot_token = "..."
# ჯგუფების ნებადართული სია კონფიგურირდება თითოეული არხისთვის

მხოლოდ მოხსენიების რეჟიმი

უმეტეს არხებს აქვს mention_only ფლაგი. ჩართვისას აგენტი პასუხობს მხოლოდ იმ შეტყობინებებს, რომლებიც მას ცალსახად ახსენებს (@-მოხსენიება, პასუხი ან პლატფორმისთვის სპეციფიკური ტრიგერი). ეს სასარგებლოა ჯგუფურ ჩატებში, რათა აგენტი ყველა შეტყობინებას არ პასუხობდეს.

toml
[channels.discord]
bot_token = "..."
mention_only = true   # პასუხობს მხოლოდ @-მოხსენიებისას

სტრიმინგის რეჟიმი

ზოგიერთი არხი მხარს უჭერს LLM პასუხების რეალურ დროში სტრიმინგს. stream_mode პარამეტრი აკონტროლებს, როგორ გამოჩნდება სტრიმინგის გამოტანა:

რეჟიმიქცევა
editრედაქტირებს იგივე შეტყობინებას ტოკენების მოსვლისას (Telegram, Discord)
appendამატებს ახალ ტექსტს შეტყობინებაში
noneელოდება სრულ პასუხს გაგზავნამდე
toml
[channels.telegram]
bot_token = "..."
stream_mode = "edit"
draft_update_interval_ms = 1000   # რამდენ ხნეში ერთხელ განახლდეს შავი ვერსია (მილიწამებში)

ახალი არხის დამატება

PRX არხები Channel ტრეიტზეა დაფუძნებული. ახალი არხის დასაკავშირებლად:

  1. დაამატეთ არხის კონფიგურაცია თქვენს openprx.toml-ში
  2. გადატვირთეთ დემონი: prx daemon

ალტერნატივად, გამოიყენეთ ინტერაქტიული არხის ოსტატი:

bash
prx channel add telegram

აქტიური არხების ჩამოთვლისთვის:

bash
prx channel list

არხის კავშირის პრობლემების დიაგნოსტიკისთვის:

bash
prx channel doctor

არხის არქიტექტურა

შიდა მხარეს, თითოეული არხი:

  1. ისმენს პლატფორმიდან შემომავალ შეტყობინებებს (პოლინგის, webhook-ების ან WebSocket-ის მეშვეობით)
  2. ფილტრავს შეტყობინებებს პირადი/ჯგუფის პოლიტიკისა და ნებადართული სიების მიხედვით
  3. მარშრუტირებს მიღებულ შეტყობინებებს აგენტის ციკლში დამუშავებისთვის
  4. აგზავნის აგენტის პასუხს უკან პლატფორმის API-ის მეშვეობით
  5. აწვდის ჯანმრთელობის სტატუსს და ავტომატურად ხელახლა უკავშირდება ექსპონენციალური უკანდახევით

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

შემდეგი ნაბიჯები

აირჩიეთ არხი მისი კონკრეტული დაყენების გასაცნობად:

  • Telegram -- Bot API ინტეგრაცია
  • Discord -- ბოტი slash ბრძანებებით
  • Slack -- Slack აპლიკაცია Socket Mode-ით
  • WhatsApp -- Cloud API ინტეგრაცია
  • Signal -- Signal CLI ხიდი
  • Matrix -- ფედერაციული ჩატი E2EE-ით
  • Lark / Feishu -- საწარმოო შეტყობინებები
  • Email -- IMAP/SMTP ინტეგრაცია

Released under the Apache-2.0 License.