
Current والميزات المخطط لها:
يستخدم هذا المشروع PIXI لإدارة التبعيات والبيئات.
إذا كنت على Linux أو MacOS ، يمكنك تثبيت Pixi باستخدام الأوامر التالية:
curl -fsSL https://pixi.sh/install.sh | bashثم استنساخ المستودع:
git clone https://github.com/dnth/pgsql-search.git
cd pgsql-searchتثبيت المشروع:
pixi installيجب أن يقوم هذا بتثبيت جميع تبعيات المشروع بما في ذلك PostgreSQL و CUDA و Pytorch و PGVector في بيئة افتراضية.
نصيحة
لماذا pixi وليس uv ؟
نحن نستخدم قاعدة بيانات PostgreSQL في هذا المشروع ولا يمكن تثبيتها مباشرة عبر uv أو pip . لكن PostgreSQL قابلة للتثبيت عبر conda .
بدلاً من استخدام conda ، نستخدم pixi لإدارة البيئة والتبعيات. بالإضافة إلى ذلك ، يستخدم pixi uv تحت الغطاء لسحب حزم الثعبان. هذا يمنحنا سرعة uv لحزم الثعبان ومرونة conda لتبعيات مستوى النظام.
ابدأ خادم قاعدة البيانات المحلية:
pixi run configure-db هذا يهيئة قاعدة البيانات ويبدأ الخادم. يجب أن ترى مجلد اسمه mylocal_db في الدليل الحالي الخاص بك. يحتوي هذا المجلد على ملفات قاعدة البيانات.
بمجرد إعداد قاعدة البيانات ، دعنا ندير البرنامج النصي QuickStart:
pixi run quickstartسيقوم هذا البرنامج النصي بتحميل مجموعة بيانات تحتوي على صور وتوضيحي ، وإنشاء قاعدة بيانات ، وإدراج مجموعة البيانات في قاعدة البيانات ، وتشغيل البحث عن النص الكامل وطباعة النتائج.
إذا سارت الأمور على ما يرام ، فيجب أن ترى النتائج مطبوعة في المحطة.
حاليا ، نحن ندعم فقط معانقة مجموعات بيانات الوجه. دعنا نقوم بتحميل مجموعة بيانات مع الصور والتسميات التوضيحية.
from pgsql_search . loader import HuggingFaceDatasets
ds = HuggingFaceDatasets ( "UCSC-VLAA/Recap-COCO-30K" ) # Load the dataset
ds . save_images ( "../data/images" ) # Save the images to a local folder
ds = ds . select_columns ([ "image_filepath" , "caption" ]) # Select the columns we want to use ds.dataset هو كائن Dataset الوجه المعانقة. أنت حر في إجراء أي عمليات تدعمها حزمة datasets .
ds . dataset Dataset({
features: ['image_filepath', 'caption'],
num_rows: 30504
})
من Ds.Dataset نرى أن لدينا 30504 صفًا في مجموعة البيانات مع عمودين: image_filepath و caption . الآن يمكننا إنشاء قاعدة بيانات وإدراج مجموعة البيانات في قاعدة البيانات.
from pgsql_search . database import PostgreSQLDatabase , ColumnType
PostgreSQLDatabase . create_database ( "my_database" )أدخل مجموعة البيانات في قاعدة البيانات:
df = ds . dataset . to_pandas ()
with PostgreSQLDatabase ( "my_database" ) as db :
db . initialize_table ( "image_metadata" )
db . add_column ( "image_filepath" , ColumnType . TEXT , nullable = False )
db . add_column ( "caption" , ColumnType . TEXT , nullable = True )
db . insert_dataframe ( df )بمجرد الانتهاء من ذلك ، يمكننا تشغيل بحث نصي كامل على قاعدة البيانات.
from pgsql_search . database import PostgreSQLDatabase
query = "man in a yellow shirt"
with PostgreSQLDatabase ( "my_database" ) as db :
res = db . full_text_search (
query = query ,
table_name = "image_metadata" ,
search_column = "caption" ,
num_results = 10
)الإخراج هو dataframe pandas مع النتائج والاستعلام.

إذا كنت ترغب في فحص قاعدة البيانات ، فيمكنك القيام بذلك مع الأمر التالي:
pixi run inspect-dbسيؤدي هذا إلى فتح محطة تفاعلية لتفقد قاعدة البيانات.
إذا كنت تريد إيقاف خادم قاعدة البيانات ، فيمكنك القيام بذلك مع الأمر التالي:
pixi run stop-dbوإزالة قاعدة البيانات بالكامل:
pixi run remove-dbpixi run -e test pytest