> ## Documentation Index
> Fetch the complete documentation index at: https://docs.crewai.com/llms.txt
> Use this file to discover all available pages before exploring further.

# قراءة URL

> تقوم `URLReadTool` بجلب عنوان URL وإرجاع محتواه كنص.

## نظرة عامة

تقرأ `URLReadTool` المحتوى الموجود في عنوان URL وتعيده كنص. يتم استخراج النص من ملفات PDF وDOCX وXLSX، ويُختزل HTML إلى النص المرئي، وتُفك ترميزات الأنواع النصية (نص عادي، Markdown، JSON، XML، YAML، CSV) كما هي. وتعمل مع الروابط الموقّعة مسبقًا للتخزين السحابي (S3 وR2 وGoogle Drive وOneDrive وSharePoint) حتى عندما يصنّف الخادم الملف على أنه `application/octet-stream`.

لا تقوم الأداة بالمصادقة، لذا يجب أن يمنح الرابط نفسه صلاحية الوصول.

## التثبيت

```shell theme={null}
pip install 'crewai[tools]'
```

## مثال على الاستخدام

```python Code theme={null}
from crewai_tools import URLReadTool

url_read_tool = URLReadTool()

content = url_read_tool.run(url="https://example.com/report.pdf")

# قراءة نافذة من الأسطر بدلاً من المستند بالكامل
head = url_read_tool.run(url="https://example.com/data.csv", line_count=20)
```

## المعاملات

يوفرها الوكيل أثناء التشغيل:

* `url`: عنوان URL المراد قراءته.
* `start_line`: (اختياري) السطر الذي تبدأ منه القراءة (يبدأ العد من 1). القيمة الافتراضية `1`.
* `line_count`: (اختياري) عدد الأسطر المراد إرجاعها. إذا حُذف، يُرجع كل شيء بدءًا من `start_line`.

تحددها عند إنشاء الأداة:

* `max_bytes`: (اختياري) أكبر حجم لجسم الاستجابة مسموح به. القيمة الافتراضية 5 MiB.
* `timeout`: (اختياري) مهلة كل طلب بالثواني. القيمة الافتراضية `30`.
* `headers`: (اختياري) ترويسات طلب إضافية.
* `encoding`: (اختياري) فرض ترميز نصي بدلاً من الترميز الذي يعلنه الخادم.

إذا فشل الجلب، تُرجع الأداة إخفاقًا يتضمن السبب، مثل عنوان محظور أو خطأ في الاتصال.

## أمان الشبكة

لأن عنوان URL يختاره عادةً نموذج لغوي (LLM) أثناء التشغيل، تُفحص الطلبات للحماية من SSRF:

* يتم حل اسم كل مضيف، ويُرفض الطلب إذا كان أي عنوان تم حله خاصًا أو حلقة محلية (loopback) أو link-local أو محجوزًا بطريقة أخرى. ويشمل ذلك نقاط نهاية البيانات الوصفية السحابية والخدمات الداخلية.
* لا تُتَّبع عمليات إعادة التوجيه تلقائيًا. يُفحص كل انتقال من جديد، وتُسقط بيانات الاعتماد عند الانتقال بين أصول مختلفة.

### السماح بمضيف داخلي

تقدم بعض بيئات النشر الملفات من مضيف يُحل إلى عنوان خاص، مثل منصة مستضافة ذاتيًا خلف موازن تحميل داخلي. للسماح به، أدرج اسم المضيف بدقة في `CREWAI_TOOLS_ALLOWED_PRIVATE_HOSTS`:

```shell theme={null}
export CREWAI_TOOLS_ALLOWED_PRIVATE_HOSTS="files.internal.example.com,assets.internal.example.com"
```

أمثلة على ما تسمح به كل قيمة، لطلب إلى `https://files.internal.example.com/report.pdf`:

| قيمة `CREWAI_TOOLS_ALLOWED_PRIVATE_HOSTS` | النتيجة | السبب |
| - | - | - |
| `files.internal.example.com` | مسموح | مطابقة تامة لاسم المضيف. |
| `https://files.internal.example.com/blobs` | مسموح | يُستخدم اسم المضيف فقط. يتم تجاهل المخطط والمسار. |
| `files.internal.example.com:8443` | مسموح | يتم تجاهل المنفذ، لذا يُسمح بأي منفذ على هذا المضيف. |
| `Files.Internal.Example.com` | مسموح | المقارنة غير حساسة لحالة الأحرف، وتُتجاهل المسافات المحيطة. |
| `other.example.com,files.internal.example.com` | مسموح | يُفحص كل إدخال على حدة، لذا يمكن إدراج عدة مضيفين. |
| `other.internal.example.com` | محظور | المضيف المختلف غير مشمول. |
| `*.internal.example.com` | محظور | أحرف البدل غير مدعومة. أدرج كل مضيف. |
| `10.10.0.115` | محظور | لا يُسمح بعناوين IP عبر هذه القائمة مطلقًا. |

* الإدخالات مفصولة بفواصل. يمكن أن يكون كل إدخال اسم مضيف مجردًا أو `host:port` أو عنوان URL كاملًا. يُستخدم اسم المضيف فقط، ويُطابق بدقة ودون مراعاة حالة الأحرف. أحرف البدل مثل `*.example.com` غير مدعومة.
* لا يُسمح بعناوين IP عبر هذه القائمة مطلقًا.
* قد يُحل المضيف المدرج إلى أي عنوان خاص، لذا أدرج فقط أسماء المضيفين التي تتحكم في DNS الخاص بها وتثق به.
* لا تزال عمليات إعادة التوجيه تُفحص، لذا يجب إدراج أي مضيف داخلي آخر يُعاد التوجيه إليه.
* ينطبق الإعداد على كل أدوات crewai-tools التي تجري طلبات آمنة، وليس `URLReadTool` فقط.
* لا يزال التحقق من شهادات TLS قائمًا. يجب أن ترتبط شهادة المضيف الذي يستخدم جهة إصدار شهادات خاصة بسلسلة تنتهي بجهة تثق بها الأداة.

هذا أضيق نطاقًا من `CREWAI_TOOLS_ALLOW_UNSAFE_PATHS=true` الذي يعطّل حماية المسارات وSSRF على مستوى العملية بأكملها ويجب تجنبه. تُتجاهل قائمة السماح عندما يكون `CREWAI_TOOLS_FORCE_SAFE_PATHS=true` معينًا، لأن هذا القفل موجود لمنع أي عملية نشر من تخفيف هذه الفحوصات. لاستخدام القائمة، اترك `CREWAI_TOOLS_FORCE_SAFE_PATHS` غير معين، وعيّن `CREWAI_TOOLS_ALLOWED_PRIVATE_HOSTS`، وأزل `CREWAI_TOOLS_ALLOW_UNSAFE_PATHS` لأن هذا المتغير يعود إلى العمل عند إزالة القفل. افعل ذلك فقط على العمال الذين تديرهم، وليس على العمال المشتركين أو متعددي المستأجرين.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.