groupultra telegram-search הוא כלי חדש לחיפוש בהיסטוריית צ’אטים של משתמשי טלגרם.

כמה המלצות:

  • Telegram 群组管理机器人 @CSUBOT: ניתן לשלוח הודעה פרטית למשתמשים חדשים ולשלוח קוד אימות דף אינטרנט של CloudFlare כדי לבצע בדיקת כניסה לקבוצה, כדי לאמת אם המשתמש המבקש להיכנס לקבוצה הוא אדם אמיתי. לא יפריע לחברים אחרים בקבוצה.
  • 查询本机访问不同网站的公网 IP, ניתן לזהות תצורות פיצול פרוקסי, כדי להימנע מחסימה על ידי כלי AI. ניתן להציג משתמשים המבקרים באתרי אינטרנט סיניים, אתרי AI בינלאומיים ידועים, אתרי אינטרנט בינלאומיים חסומים ואתרי אינטרנט בינלאומיים שאושרו לשימוש בכתובות IP שלהם.

תכונות הפרויקט

לפי התיעוד הרשמי, Telegram Search מציע את הפונקציות העיקריות הבאות:

  • חיפוש סמנטי: לא רק יכול לחפש מילות מפתח, אלא גם להבין את ההקשר והמשמעות של ההודעה
  • התאמת וקטור: מבוסס על טכנולוגיית הווקטורים המשובצים של OpenAI, כדי להשיג חיפוש דמיון
  • אחזור יעיל: חוויית אחזור מדויקת וחכמה יותר מחיפוש מקורי של Telegram
  • תמיכה מרובת פלטפורמות: מספק ממשק אינטרנט ויישום שולחני

וויתור

ראשית, רשום כמה תכנים השונים מהציפיות של המשתמשים וכמה בעיות קיימות, כדי לשכנע חלק מהמשתמשים הלא מתאימים לפרויקט זה. ותן עצות לשימוש בפרויקטים בוגרים אחרים.

ההבדל בין פרויקט זה לפרויקטים מסורתיים אחרים שאינם משתמשים בבינה מלאכותית הוא חיפוש סמנטי (לא רק יכול לחפש מילות מפתח, אלא גם להבין את ההקשר והמשמעות של ההודעה). עם זאת, כרגע ניסיתי כמה שאילתות, בין אם אפשרות ההגדרה “תוכן חיפוש” מסומנת או לא, בעצם אי אפשר להשתמש בשאלה כדי לחפש (רק משפט אחד אפשרי); לא ניתן לבצע שאילתת מילים נרדפות. ניתן לחפש רק הודעות שהתוצאות והשאילתה חולקות מילים משותפות. לא בטוח אם זו בעיה במודל ההטמעה.

הפקודות להפעלה של פריסה של קצה קדמי וקצה אחורי שמשתמשים בהן לעתים קרובות צריכות לחכות להידור, עבור משתמשים שהתרגלו לשפות תכנות שלא צריכות להידור מראש ושלהרגיל למהירות הידור מהירה, זמן ההמתנה של הפרויקט הזה קצת ארוך.

כאשר פותחים את הקצה הקדמי לשימוש, ואז לאחר זמן מה, מרעננים את השימוש, יופיע מסך לבן בקצה הקדמי, כמוצג להלן. בכל פעם צריך להפעיל מחדש, pnpm run dev:frontend, כדי לחכות להידור. כאשר הוא פרוס על שרת, בכל פעם שמשתמשים בו, או ליתר דיוק, בכל פעם לפני שמבצעים שאילתה, צריך גם להתחבר לשרת כדי להדר אותו, וזה באמת טרחה.

groupultra/telegram-search 项目前端白屏问题

סיכום הבעיות לעיל הוא ש-groupultra telegram-search, כפרויקט לחיפוש הודעות היסטוריות בטלגרם, כרגע פחות טוב מפרויקטים מסורתיים בוגרים אחרים. המלצות לפרויקטים אחרים:

落絮 lilydjwg/luoxu:一个用于索引中文和日文群组内容的 Telegram 用户机器人。 — A Telegram userbot to index Chinese and Japanese group contents. , פותח על ידי Yiyun מקהילת archlinux cn, הפרויקט פועל ביציבות במשך שנים רבות, צפה באפקט בפועל: 公开的群组消息记录搜索网页 . תכונות הפרויקט:

  • הפרויקט משתמש בעיקר בפייתון, אין צורך לחכות להידור. למרות שיש רכיבים שצריך להדר, אבל צריך להדר אותם רק פעם אחת
  • החיפוש אחר מחרוזות אינו מבחין בין סינית פשוטה למסורתית (ישתמש ב-OpenCC כדי להמיר אוטומטית)
  • החיפוש אחר מחרוזות תומך בכמה תחבירים לחיפוש
  • צורך פחות משאבים להפעלה מאשר groupultra/telegram-search

הבעיות של Luoxu:

  • ההתקנה והפריסה עשויות להיות קצת יותר מסובכות מפרויקט groupultra/telegram-search. (זהו השוואה בין שני הפרויקטים שפרסתי בפועל. מכיוון שפרסתי את luoxu על מערכת Linux arm32, כל התלות של הפריסה שלי ב-luoxu מותקנות לחלוטין על ידי הידור, כולל PostgreSQL: Linux 编译安装 PostgreSQL 17.4)
  • קוד ברירת המחדל יכול לאנדקס רק את ההודעות של קבוצות וערוצים שנכתבו בקובץ התצורה, כמובן שאתה יכול לשנות את הקוד באופן ידני

הנחות מוקדמות ודרישות לפריסה

  • AI שניתן להשתמש בו, כגון Google Gemini, OpenAI וכו'.
  • Node.js: גרסה 20.0 ומעלה
  • RAM: לפחות 100MB
  • רשת שיכולה לגשת לאינטרנט הבינלאומי

מדריך זה משתמש ב-Google Gemini בחינם לחלוטין, ה-API המקוון לא צורך משאבי מחשוב מקומיים. בקשת הצגה: Gemini API KEY 申请及使用

אני פרוס על שרת בינלאומי Linux amd64, לא השתמשתי ב-Docker, סביבות מערכת הפעלה אחרות הן רק לעיון

בצע את הפעולות בהתאם למדריך זה, אנא הקפד להשוות עם התיעוד הרשמי.

התחלה מהירה

לפי התיעוד הרשמי, תהליך הבסיס לשימוש ב-Telegram Search הוא כדלקמן:

  1. התקנה ותצורה: התקן את היישום והגדר את ה-API הדרוש
  2. חיבור חשבון Telegram: התחבר לחשבון ה-Telegram שלך
  3. סנכרון היסטוריית צ’אטים: בחר את היסטוריית הצ’אטים שברצונך לחפש וסנכרן אותה
  4. התחל חיפוש: השתמש בפונקציית החיפוש הסמנטי כדי למצוא הודעות

התקנה ותצורה

התקנת Node.js

בקר באתר Node.js 官网 כדי להציג את התיעוד, ובצע את ההתקנה. מומלץ להשתמש בגרסת ה-LTS העדכנית ביותר, לאחר ההתקנה השתמש בשתי הפקודות הבאות כדי לאשר את הגרסה:

node -v
v22.16.0

npm --version
10.9.2

מכיוון שהפרויקט משתמש ב-pnpm, בצע את ההתקנה. תיעוד רשמי: Installation | pnpm , הפקודה בפועל הנוכחית:

curl -fsSL https://get.pnpm.io/install.sh | sh -

בהתאם להנחיות

source /home/opc/.bashrc

התקנת מסד נתונים PostgreSQL והתוסף pgvector

שים לב שעליך להתקין PostgreSQL ואת התוסף pgvector. שים לב שהתוכן בסעיף זה עשוי להיות לא שלם

שים לב שמערכות redhat כמו CentOS משתמשות בפקודות התקנה אלה. הקפד לעיין במאמרים אחרים באינטרנט ובעצות AI בעת הפעולה.

התקן את חבילת התצורה של מאגר YUM הרשמי של PostgreSQL

sudo yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-9-x86_64/pgdg-redhat-repo-latest.noarch.rpm

הגרסה שאני בוחר בה היא 13, אתה יכול לבחור גרסה מעודכנת יותר. מכיוון שהתקנתי בעבר את PostgreSQL 13, הפקודה הספציפית אינה בטוחה. עכשיו

חפש חבילות זמינות הקשורות ל-pgvector במקור YUM

sudo yum search pgvector

להתקין

sudo yum install -y pgvector_13
sudo systemctl status postgresql-13

אתחל את ספריית הנתונים של PostgreSQL 13 (חייב לבצע לאחר ההתקנה הראשונה).

sudo /usr/pgsql-13/bin/postgresql-13-setup initdb

הפעל מחדש את שירות PostgreSQL 13 כדי להחיל את השינויים.

sudo systemctl restart postgresql-13

עבור למשתמש מנהל מסד הנתונים postgres.

sudo -i -u postgres

הפעל את לקוח שורת הפקודה של PostgreSQL.

psql

הגדר סיסמה למשתמש postgres.

ALTER USER postgres WITH PASSWORD 'סיסמת מסד הנתונים שלך';

התחבר ל-PostgreSQL דרך מארח מקומי בתור המשתמש postgres, ובקש להזין סיסמה.

psql -U postgres -h localhost --password

צא מ-psql

exit

ואז חזור למשתמש המערכת הראשוני,

exit

נסה להיכנס למסד הנתונים

psql -U postgres -h localhost --password
CREATE DATABASE tg_1;
CREATE EXTENSION IF NOT EXISTS vector;

הגדר את הפרויקט והפעל אותו

מכיוון של-Google Gemini API יש מגבלת קצב, ביצעתי שינוי קל:

git clone -b rate https://github.com/cjh0613/groupultra-telegram-search.git

שים לב שהסניף הנוכחי של קצב, שיניתי אותו לחלוטין בדף האינטרנט של Github, ולא ביצעתי שום בדיקות מקומיות.

הגבלת הקצב שהמכונה שלי יכולה להפעיל בהצלחה מבוססת על מהדורה זו: v1.0.0-beta.10, commit: c60ac6416dcac6543d2623c49179681ed859e26f, רק כדי להבטיח שהקוד יכול לפעול, בלי שגיאות. אם הקוד שלך לא יכול לפעול, נסה להחזיר את השינויים של הפרויקט הרשמי לאחר ביטול המחויבות הזו.

אם ל-API שאתה משתמש בו אין מגבלת קצב, אתה יכול להשתמש ישירות במאגר הרשמי

git clone https://github.com/groupultra/telegram-search.git

העתק את קובץ התצורה config\config.example.yaml לקובץ config\config.yaml באותה ספרייה.

התייחס לעיצוב הבא כדי לשנות ישירות את קובץ התצורה, החלקים האחרים מתייחסים להוראות קובץ התצורה המוגדר כברירת מחדל כדי לשנות אותם.

בקשת telegram api צריכה ip איכותי, אם אתה לא יכול לבקש אותה, השתמש בזו של המחבר, אין צורך לשנות אותה. זה מיועד ללקוחות צד שלישי, לא לבוטים של telegram.

database:
  # Database type: postgres, pglite
  type: postgres
  # PostgreSQL configuration (used when type: postgres)
  # Can use URL or separate field configuration
  # url: postgres://postgres:postgres@localhost:5432/tg_search
  host: localhost
  port: 5432
  user: postgres
  password: 'סיסמת מסד הנתונים שלך'
  database: tg_1

api:
  embedding:
    # Embedding provider (openai or ollama) # אל תשנה את זה ל-Gemini כאן
    provider: openai
    # Embedding model
    model: models/text-embedding-004
    # gemini-embedding-exp-03-07
    # API key for provider
    apiKey: <מפתח ה-API של Gemini שהשגת>
    # Gemini embedding-001 פלט ברירת המחדל הוא 3072 מימדים, לא ניתן להתאים אישית מימדים
    dimension: 768
    # Optional, for custom API providers
    apiBase: 'https://generativelanguage.googleapis.com/v1beta/openai/'
# הפעל את שירות הקצה האחורי
pnpm run dev:server

# הפעל את ממשק הקצה הקדמי בחלון טרמינל אחר
pnpm run dev:frontend

בדוק אם ניתן לגשת לקצה הקדמי בהצלחה:

curl http://localhost:3333/

אם זה מחשב מקומי, פתח דפדפן כדי לבקר ב-http://localhost:3333 כדי להשתמש ביישום

אם מדובר במכשיר מרוחק, אתה רק צריך לפתוח את היציאה של הקצה הקדמי כדי לגשת אליה. אבל אי אפשר לחשוף אותה ישירות לציבור, אחרת כל אחד יכול לתפעל את חשבון הטלגרם שלך. אתה צריך להגדיר את הרשאות הגישה בעצמך, ישנן תוכניות רבות לכך.

בנוסף, גישה לדומיין עשויה לדרוש שינוי apps\frontend\vite.config.ts כדי להוסיף

 allowedHosts: ['הדומיין שלך']

לתוכן אחר, אנא עיין בתיעוד הרשמי.

גרסאות אחרות של דף אינטרנט זה

ישנן גרסאות בשפות רבות למאמר זה.

אם ברצונך להגיב, בקר בדפי האינטרנט הבאים:

ZH EN ZH-TW JA

דפי אינטרנט אלה תומכים רק בדפדוף, לא ניתן להגיב או להשאיר הודעות, אך הם מספקים אפשרויות שפה נוספות וזמני טעינה קצרים יותר:

ZH EN ZH-TW JA RU KO CS ES AR FR PT DE TR IT NL SV DA FI PL UK HE RO HU EL HR TH HI BN ID SW VI NO