groupultra telegram-search একটি নতুন টেলিগ্রাম ব্যবহারকারীর চ্যাট হিস্টরি সার্চ করার টুল।

কিছু প্রস্তাবনাঃ

  • Telegram গ্রুপ ম্যানেজমেন্ট রোবট @CSUBOT : নতুন ব্যবহারকারীদের ব্যক্তিগত মেসেজ পাঠাতে পারে, ক্লাউডফ্লেয়ারের ওয়েব যাচাইকরণ কোড পাঠাতে পারে, যা গ্রুপে যোগদানের জন্য আবেদন করা ব্যবহারকারীরা আসল মানুষ কিনা তা যাচাই করার জন্য ব্যবহৃত হয়। এটি গ্রুপের অন্য সদস্যদের বিরক্ত করবে না।
  • বিভিন্ন ওয়েবসাইটে অ্যাক্সেস করার জন্য আপনার মেশিনের পাবলিক আইপি দেখুন, এটি প্রক্সি ডাইভারশন কনফিগারেশন সনাক্ত করতে পারে এবং AI সরঞ্জাম দ্বারা ব্লক হওয়া থেকে বাঁচাতে পারে। ব্যবহারকারী চীন ওয়েবসাইট, আন্তর্জাতিক সুপরিচিত AI ওয়েবসাইট, ব্লক করা আন্তর্জাতিক ওয়েবসাইট এবং অ্যাক্সেসযোগ্য আন্তর্জাতিক ওয়েবসাইটগুলি কোন আইপি ব্যবহার করে তা দেখতে পারেন।

প্রকল্পের বৈশিষ্ট্য

অফিসিয়াল ডকুমেন্ট অনুযায়ী, Telegram Search নিম্নলিখিত মূল ফাংশনগুলি প্রদান করে:

  • শব্দার্থিক অনুসন্ধান: শুধুমাত্র কীওয়ার্ড অনুসন্ধান করাই নয়, বার্তার প্রেক্ষাপট এবং অর্থও বুঝতে পারে
  • ভেক্টর ম্যাচিং: OpenAI-এর এম্বেডিং ভেক্টর প্রযুক্তির উপর ভিত্তি করে, সাদৃশ্য অনুসন্ধান উপলব্ধি করে
  • কার্যকর পুনরুদ্ধার: টেলিগ্রামের নেটিভ অনুসন্ধানের চেয়ে আরও সুনির্দিষ্ট এবং বুদ্ধিমান পুনরুদ্ধার অভিজ্ঞতা
  • মাল্টি-প্ল্যাটফর্ম সমর্থন: ওয়েব ইন্টারফেস এবং ডেস্কটপ অ্যাপ্লিকেশন সরবরাহ করে

নিরুৎসাহিত করা

প্রথমত, কিছু বিষয় তালিকাভুক্ত করা যাক যা ব্যবহারকারীর প্রত্যাশার থেকে উল্লেখযোগ্যভাবে ভিন্ন, সেইসাথে কিছু বিদ্যমান সমস্যা, যা কিছু ব্যবহারকারীকে এই প্রকল্পের জন্য অনুপযুক্ত করে তুলতে পারে। এবং অন্যান্য পরিপক্ক প্রকল্প ব্যবহারের জন্য পরামর্শ দিন।

এই প্রকল্পটি অন্যান্য অ-AI ঐতিহ্যবাহী প্রকল্প থেকে পৃথক কারণ এটি শব্দার্থিক অনুসন্ধান করে (শুধু কীওয়ার্ড অনুসন্ধান করাই নয়, বার্তার প্রেক্ষাপট এবং অর্থও বুঝতে পারে)। যাইহোক, বর্তমানে আমি বেশ কয়েকটি অনুসন্ধান করার চেষ্টা করেছি, “অনুসন্ধানের বিষয়বস্তু” সেটিংস নির্বাচন করা হোক বা না হোক, মূলত প্রশ্নবোধক বাক্য দিয়ে অনুসন্ধান করা যায় না (শুধুমাত্র একটি করা যেতে পারে); প্রতিশব্দ অনুসন্ধান করা যায় না। শুধুমাত্র সেই বার্তাগুলি খুঁজে পাওয়া যায় যেগুলির অনুসন্ধানের সাথে সাধারণ শব্দ রয়েছে। এটি এম্বেডিং মডেলের সমস্যা কিনা তা নিশ্চিত নয়।

ফ্রন্টএন্ড এবং ব্যাকএন্ড স্থাপনার জন্য প্রায়শই ব্যবহৃত কমান্ডগুলির জন্য কম্পাইল করার জন্য অপেক্ষা করতে হয়, যা সেই ব্যবহারকারীদের জন্য যাদের প্রি-কম্পাইল করার প্রয়োজন হয় না এবং যারা দ্রুত কম্পাইল করতে অভ্যস্ত, তাদের জন্য এই প্রকল্পের অপেক্ষার সময় কিছুটা দীর্ঘ।

ফ্রন্টএন্ড খোলার পরে এবং কিছুক্ষণ পরে রিফ্রেশ করার সময়, ফ্রন্টএন্ড একটি সাদা স্ক্রিন দেখাবে, যেমনটি নীচে দেখানো হয়েছে। প্রতিবার রিস্টার্ট করতে হয়, pnpm run dev:frontend, কম্পাইল করার জন্য অপেক্ষা করতে হয়। সার্ভারে স্থাপন করা হলে, প্রতিবার ব্যবহারের আগে বা প্রতিটি অনুসন্ধানের আগে সার্ভারের সাথে সংযোগ স্থাপন এবং কম্পাইল করতে হয়, যা সত্যিই ঝামেলাপূর্ণ।

groupultra/telegram-search প্রকল্পের ফ্রন্টএন্ড সাদা স্ক্রিন সমস্যা

উপরের সমস্যাগুলির সারসংক্ষেপ হল, groupultra telegram-search একটি টেলিগ্রামের পুরনো মেসেজ অনুসন্ধানের প্রকল্প হিসাবে, বর্তমানে অন্যান্য পরিপক্ক ঐতিহ্যবাহী প্রকল্পের মতো ব্যবহার করা সহজ নয়। অন্যান্য প্রকল্পের প্রস্তাবনাঃ

落絮 lilydjwg/luoxu:একটি টেলিগ্রাম ইউজার রোবট যা চীনা এবং জাপানি গ্রুপের বিষয়বস্তু ইনডেক্স করার জন্য ব্যবহৃত হয়। — A Telegram userbot to index Chinese and Japanese group contents. , archlinux cn কমিউনিটি দ্বারা বিকশিত, প্রকল্পটি বহু বছর ধরে স্থিতিশীলভাবে চলছে, বাস্তব প্রভাব দেখুন: পাবলিক গ্রুপের মেসেজ রেকর্ডের অনুসন্ধান ওয়েবপেজ । প্রকল্পের বৈশিষ্ট্য:

  • প্রকল্পটি মূলত পাইথন ব্যবহার করে, কম্পাইল করার জন্য অপেক্ষা করার প্রয়োজন নেই। যদিও কিছু কম্পোনেন্ট কম্পাইল করার প্রয়োজন হয়, তবে এটি শুধুমাত্র একবার কম্পাইল করতে হয়
  • অনুসন্ধান স্ট্রিং সরলীকৃত এবং ঐতিহ্যবাহী অক্ষরগুলির মধ্যে পার্থক্য করে না (OpenCC স্বয়ংক্রিয়ভাবে রূপান্তরিত করবে)
  • অনুসন্ধান স্ট্রিং কিছু অনুসন্ধান সিনট্যাক্স সমর্থন করে
  • চালানোর জন্য groupultra/telegram-search এর চেয়ে কম রিসোর্স ব্যবহার করে

Luoxu এর সমস্যা:

  • groupultra/telegram-search প্রকল্পের চেয়ে ইনস্টল এবং স্থাপন করা কিছুটা বেশি ঝামেলাপূর্ণ হতে পারে। (এটি দুটি প্রকল্পের আমার বাস্তব স্থাপনার তুলনা। যেহেতু আমি লিনাক্স arm32 সিস্টেমে luoxu স্থাপন করছি, তাই luoxu এর আমার সমস্ত নির্ভরতা সম্পূর্ণরূপে কম্পাইল এবং ইনস্টল করা হয়েছে, যার মধ্যে রয়েছে PostgreSQL: লিনাক্সে PostgreSQL 17.4 কম্পাইল এবং ইনস্টল করুন )
  • ডিফল্ট কোড শুধুমাত্র কনফিগারেশন ফাইলে লেখা গ্রুপ এবং চ্যানেল মেসেজ ইনডেক্স করতে পারে, অবশ্যই আপনি ম্যানুয়ালি কোড পরিবর্তন করতে পারেন

স্থাপনার পূর্বশর্ত এবং প্রয়োজনীয়তা

  • ব্যবহারযোগ্য AI, যেমন Google Gemini, OpenAI ইত্যাদি।
  • Node.js: 20.0 বা তার বেশি সংস্করণ
  • RAM: কমপক্ষে 100 MB
  • আন্তর্জাতিক ইন্টারনেটে অ্যাক্সেস করার ক্ষমতা

এই টিউটোরিয়ালটি সম্পূর্ণ বিনামূল্যে Google Gemini ব্যবহার করে, অনলাইন API স্থানীয় কম্পিউটিং রিসোর্স ব্যবহার করে না। আবেদনের ভূমিকা: Gemini API KEY এর জন্য আবেদন এবং ব্যবহার

আমি লিনাক্স amd64 আন্তর্জাতিক সার্ভারে স্থাপন করছি, ডকার ব্যবহার করছি না, অন্যান্য অপারেটিং সিস্টেম পরিবেশ শুধুমাত্র রেফারেন্সের জন্য

এই টিউটোরিয়াল অনুযায়ী কাজ করার সময়, অনুগ্রহ করে অফিসিয়াল ডকুমেন্টেশনের সাথে তুলনা করতে ভুলবেন না।

দ্রুত শুরু

অফিসিয়াল ডকুমেন্ট অনুসারে, 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 ইনস্টল করতে ভুলবেন না। মনে রাখবেন এই বিভাগের বিষয়বস্তু অসম্পূর্ণ হতে পারে

CentOS ইত্যাদি redhat সিস্টেম এই ইনস্টলেশন কমান্ড ব্যবহার করে নোট করুন। পরিচালনা করার সময়, অনলাইন অন্যান্য নিবন্ধ এবং AI পরামর্শ উল্লেখ করতে ভুলবেন না।

PostgreSQL অফিসিয়াল YUM রিপোজিটরি কনফিগারেশন প্যাকেজ ইনস্টল করুন

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 ইনস্টল করেছি, নির্দিষ্ট কমান্ড অনিশ্চিত। এখন

YUM সোর্সে pgvector সম্পর্কিত উপলব্ধ প্যাকেজগুলি অনুসন্ধান করুন

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 'আপনার ডাটাবেস পাসওয়ার্ড';

postgres ব্যবহারকারী হিসাবে লোকাল হোস্টের মাধ্যমে PostgreSQL এ সংযোগ করুন এবং পাসওয়ার্ডের জন্য প্রম্পট করুন।

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

মনে রাখবেন বর্তমান রেট ব্রাঞ্চটি আমি গিটহাব ওয়েবসাইটে সম্পূর্ণরূপে পরিবর্তন করেছি, স্থানীয়ভাবে কোনও পরীক্ষা করা হয়নি।

আমার মেশিনে সফলভাবে চলমান রেট সীমা পরিবর্তন এই রিলিজে রয়েছে: 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 আবেদনের জন্য ভাল মানের আইপি প্রয়োজন, আপনি যদি আবেদন করতে না পারেন তবে লেখকেরটি ব্যবহার করুন, পরিবর্তন করার দরকার নেই। এটি তৃতীয় পক্ষের ক্লায়েন্টের জন্য, টেলিগ্রাম রোবটের জন্য নয়।

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: <আপনার প্রাপ্ত Gemini API KEY>
    # 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