محرك بحث مدعوم بالذكاء الاصطناعي مع واجهة مستخدم مولدة.
حذر
تم تصميم Morphic باستخدام Vercel AI SDK RSC. AI SDK RSC تجريبي وله بعض القيود. عند استخدامه في الإنتاج، يوصى بالانتقال إلى SDK UI.
ملحوظة
يرجى ملاحظة أن هناك اختلافات بين هذا المستودع والموقع الرسمي morphic.sh. الموقع الرسمي هو نسخة فرعية من هذا المستودع مع ميزات إضافية مثل المصادقة، وهي ضرورية لتقديم الخدمة عبر الإنترنت. يوجد كود المصدر الأساسي لـ Morphic في هذا المستودع، وهو مصمم ليتم إنشاؤه ونشره بسهولة.
قم بتفرع الريبو إلى حساب Github الخاص بك، ثم قم بتشغيل الأمر التالي لاستنساخ الريبو:
git clone [email protected]:[YOUR_GITHUB_ACCOUNT]/morphic.git
cd morphic
bun install
اتبع الدليل أدناه لإعداد Upstash Redis. قم بإنشاء قاعدة بيانات واحصل على UPSTASH_REDIS_REST_URL
و UPSTASH_REDIS_REST_TOKEN
. ارجع إلى دليل Upstash للحصول على إرشادات حول كيفية المتابعة.
إذا كنت تنوي استخدام Redis محلي، فيمكنك تخطي هذه الخطوة.
cp .env.local.example .env.local
يجب أن يبدو ملف .env.local الخاص بك كما يلي:
# OpenAI API key retrieved here: https://platform.openai.com/api-keys
OPENAI_API_KEY=
# Tavily API Key retrieved here: https://app.tavily.com/home
TAVILY_API_KEY=
# Upstash Redis URL and Token retrieved here: https://console.upstash.com/redis
UPSTASH_REDIS_REST_URL=
UPSTASH_REDIS_REST_TOKEN=
## Redis Configuration
This application supports both Upstash Redis and local Redis. To use local Redis:
1. Set `USE_LOCAL_REDIS=true` in your `.env.local` file.
2. Optionally, set `LOCAL_REDIS_URL` if your local Redis is not running on the default `localhost:6379` or `redis://redis:6379` if you're using docker compose.
To use Upstash Redis:
1. Set `USE_LOCAL_REDIS=false` or leave it unset in your `.env.local` file.
2. Set `UPSTASH_REDIS_REST_URL` and `UPSTASH_REDIS_REST_TOKEN` with your Upstash credentials.
# SearXNG Configuration
SEARXNG_API_URL=http://localhost:8080 # Replace with your local SearXNG API URL or docker http://searxng:8080
SEARCH_API=tavily # use searxng, tavily or exa
SEARXNG_SECRET="" # generate a secret key e.g. openssl rand -base64 32
SEARXNG_PORT=8080 # default port
SEARXNG_BIND_ADDRESS=0.0.0.0 # default address
SEARXNG_IMAGE_PROXY=true # enable image proxy
SEARXNG_LIMITER=false # can be enabled to limit the number of requests per IP address
SEARXNG_DEFAULT_DEPTH=basic # Set to 'basic' or 'advanced', only affects SearXNG searches
SEARXNG_MAX_RESULTS=50 # Maximum number of results to return from SearXNG
لتشغيل التطبيق محليًا باستخدام Bun، قم بتنفيذ الأمر التالي:
bun dev
يمكنك الآن زيارة http://localhost:3000 في متصفح الويب الخاص بك.
لتشغيل التطبيق باستخدام Docker، استخدم الأمر التالي:
docker compose up -d
سيؤدي هذا إلى بدء التطبيق في الوضع المنفصل. يمكنك الوصول إليه على http://localhost:3000.
قم باستضافة نسختك المباشرة من Morphic مع صفحات Vercel أو Cloudflare.
إذا كنت تريد استخدام Morphic كمحرك بحث في متصفحك، فاتبع الخطوات التالية:
https://morphic.sh/search?q=%s
سيسمح لك هذا باستخدام Morphic كمحرك البحث الافتراضي في المتصفح.
يدعم Morphic الآن SearXNG كواجهة خلفية بديلة للبحث مع إمكانيات بحث متقدمة. لاستخدام SearXNG:
تأكد من تثبيت Docker وDocker Compose على نظامك.
في ملف .env.local
، قم بتعيين المتغيرات التالية:
يتم توفير ملفين للتكوين في الدليل الجذر:
searxng-settings.yml
: يحتوي هذا الملف على التكوين الرئيسي لـ SearXNG، بما في ذلك إعدادات المحرك وخيارات الخادم.searxng-limiter.toml
: يقوم هذا الملف بتكوين ميزات تحديد المعدل واكتشاف الروبوتات الخاصة بـ SearXNG. قم بتشغيل docker-compose up
لبدء مكدس Morphic مع تضمين SearXNG.
سيكون SearXNG متاحًا على http://localhost:8080
وسيستخدمه Morphic كواجهة خلفية للبحث.
NEXT_PUBLIC_BASE_URL
: قم بتعيين هذا على عنوان URL للتطوير المحلي (http://localhost:3000) أو عنوان URL للإنتاج عند النشر.SEARXNG_DEFAULT_DEPTH
: اضبط على "أساسي" أو "متقدم" للتحكم في عمق البحث الافتراضي.SEARXNG_MAX_RESULTS
: الحد الأقصى لعدد النتائج التي يمكن إرجاعها من SearXNG.SEARXNG_CRAWL_MULTIPLIER
: في وضع البحث المتقدم، يحدد هذا المضاعف عدد النتائج التي سيتم الزحف إليها. على سبيل المثال، إذا كان SEARXNG_MAX_RESULTS=10
و SEARXNG_CRAWL_MULTIPLIER=4
، فسيتم الزحف إلى ما يصل إلى 40 نتيجة قبل التصفية والتصنيف.SEARXNG_ENGINES
: قائمة مفصولة بفواصل لمحركات البحث المطلوب استخدامها.SEARXNG_TIME_RANGE
: النطاق الزمني لنتائج البحث (على سبيل المثال، "يوم"، "أسبوع"، "شهر"، "عام"، "الكل").SEARXNG_SAFESEARCH
: إعداد البحث الآمن (0 للإيقاف، 1 للمتوسط، 2 للصارم).تتضمن ميزة البحث المتقدم الزحف إلى المحتوى وتسجيل مدى الصلة بالموضوع والتصفية لتوفير نتائج أكثر دقة وشمولاً.
searxng-settings.yml
لتمكين/تعطيل محركات بحث معينة، أو تغيير إعدادات واجهة المستخدم، أو ضبط خيارات الخادم.searxng-limiter.toml
بتكوين تحديد المعدل واكتشاف الروبوتات. يعد هذا مفيدًا إذا كنت تعرض SearXNG مباشرة إلى الإنترنت.docker-compose.yml
أو مباشرة في حاوية SearXNG. searxng-settings.yml
: engines :
- name : wikidata
disabled : true