LLM4Data هي مكتبة Python مصممة لتسهيل تطبيق نماذج اللغات الكبيرة (LLMs) والذكاء الاصطناعي لتطوير البيانات واكتشاف المعرفة. الغرض منه هو تمكين المستخدمين والمنظمات من اكتشاف بيانات التطوير والتفاعل معها بطرق مبتكرة من خلال اللغة الطبيعية.
يقوم LLM4Data بتشغيل تطبيق DevData Chat، والذي سيكون متاحًا قريبًا كمشروع مفتوح المصدر. يوضح هذا التطبيق الطرق المختلفة التي يعمل بها LLM (نموذج اللغة) والذكاء الاصطناعي على تعزيز الاكتشاف والتفاعل مع البيانات والمعرفة، وتقديم حلول مبتكرة للمساعدة في معالجة فجوات قابلية الاكتشاف وإمكانية الوصول.
تحتوي مكتبة LLM4Data على مجموعة من حلول الاكتشاف وزيادة البيانات لمختلف أنواع البيانات بما في ذلك المستندات والمؤشرات والبيانات الجزئية والبيانات الجغرافية المكانية والمزيد. يتضمن الإصدار الحالي من المكتبة حلولاً لمؤشرات مؤشرات التنمية العالمية. سيتم إضافة حلول إضافية في الإصدارات المستقبلية.
بناءً على معايير ومخططات البيانات التعريفية الحالية، يمكن للمستخدمين والمؤسسات الاستفادة من LLMs لتعزيز التطبيقات المستندة إلى البيانات، وتمكين معالجة اللغة الطبيعية، وإنشاء النصوص، والمزيد باستخدام LLM4Data. تعمل المكتبة كجسر بين ماجستير إدارة الأعمال وبيانات التطوير باستخدام مكتبات مفتوحة المصدر، مما يوفر واجهة سلسة للاستفادة من قدرات نماذج اللغة القوية هذه.
استخدم نقطة مدير الحزم لتثبيت LLM4Data.
pip install llm4data
توضح الأمثلة التالية كيفية استخدام LLM4Data لإنشاء عناوين URL لـ WDI API واستعلامات SQL من المطالبات.
يمكن العثور على أمثلة إضافية هنا.
This example uses the OpenAI API. Before you proceed, make sure to set your API keys in the `.env` file. See the [setup instructions](https://worldbank.github.io/llm4data/notebooks/examples/getting-started/openai-api.html) for more details.
from llm4data . prompts . indicators import wdi
# Create a WDI API prompt object
wdi_api = wdi . WDIAPIPrompt ()
# Send a prompt to the LLM to get a WDI API URL relevant to the prompt
response = wdi_api . send_prompt (
"What is the gdp and the co2 emissions of the philippines and its neighbors in the last decade?"
)
# Parse the response to get the WDI API URL
wdi_api_url = wdi_api . parse_response ( response )
print ( wdi_api_url )
سيبدو الإخراج كما يلي:
https://api.worldbank.org/v2/country/PHL;IDN;MYS;SGP;THA;VNM/indicator/NY.GDP.MKTP.CD;EN.ATM.CO2E.KT?date=2013:2022&format=json&source=2
لاحظ أن عنوان URL الذي تم إنشاؤه يتضمن بالفعل رموز البلدان والمؤشرات ذات الصلة بالمطالبة. إنها تفهم ما هي الدول المجاورة للفلبين. كما أنه يفهم أيضًا رموز المؤشرات التي من المحتمل أن توفر البيانات ذات الصلة بالناتج المحلي الإجمالي وانبعاثات ثاني أكسيد الكربون.
يتضمن عنوان URL أيضًا النطاق الزمني للبيانات وتنسيقها ومصدرها. يمكن للمستخدم بعد ذلك تعديل عنوان URL حسب الحاجة، واستخدامه للاستعلام عن واجهة برمجة تطبيقات WDI.
Make sure you have set up your environment first. The example below requires a working database engine, e.g., postgresql. If you want to use SQLite, make sure to update the `.env` file and set the environment variables.
في حين أنه يمكن تحميل بيانات WDI في إطار بيانات Pandas، إلا أنه ليس من العملي دائمًا القيام بذلك؛ على سبيل المثال، تطوير التطبيقات التي يمكنها الإجابة على أسئلة البيانات العشوائية.
تتضمن مكتبة LLM4Data واجهة SQL لبيانات WDI، مما يسمح للمستخدمين بالاستعلام عن البيانات باستخدام SQL.
ستسمح هذه الواجهة للمستخدمين بالاستعلام عن البيانات باستخدام SQL، وإرجاع النتائج كإطار بيانات Pandas. تسمح الواجهة أيضًا للمستخدمين بالاستعلام عن البيانات باستخدام SQL وإرجاع النتائج ككائن JSON.
import json
from llm4data . prompts . indicators import templates , wdi
from llm4data . llm . indicators import wdi_sql
prompt = "What is the GDP and army spending of the Philippines in 2020?"
sql_data = wdi_sql . WDISQL (). llm2sql_answer ( prompt , as_dict = True )
print ( sql_data )
# # {'sql': "SELECT country, value AS gdp, (SELECT value FROM wdi WHERE country_iso3 = 'PHL' AND indicator = 'MS.MIL.XPND.GD.ZS' AND year = 2020) AS army_spending FROM wdi WHERE country_iso3 = 'PHL' AND indicator = 'NY.GDP.MKTP.CD' AND year = 2020 AND value IS NOT NULL",
# # 'params': {},
# # 'data': {'data': [{'country': 'Philippines',
# # 'gdp': 361751116292.541,
# # 'army_spending': 1.01242392260698}],
# # 'sample': [{'country': 'Philippines',
# # 'gdp': 361751116292.541,
# # 'army_spending': 1.01242392260698}]},
# # 'num_samples': 20}
تتضمن مكتبة LLM4Data أيضًا دعمًا لإنشاء تفسيرات سردية لاستجابات استعلام SQL. يعد هذا مفيدًا لإنشاء أوصاف البيانات باللغة الطبيعية، والتي يمكن استخدامها لتوفير السياق للمستخدمين وشرح نتائج استعلامات البيانات.
from llm4data . prompts . indicators import templates
# Send the prompt to the LLM for a narrative explanation of the response.
# This is optional and can be skipped.
# Note that we pass only a sample in the `context_data`.
# This could limit the quality of the response.
# This is a limitation of the current version of the LLM which is constrained by the context length and cost.
explainer = templates . IndicatorPrompt ()
description = explainer . send_prompt ( prompt = prompt , context_data = json . dumps ( sql_data [ "data" ][ "sample" ]))
print ( description [ "content" ])
# # Based on the data provided, the GDP of the Philippines in 2020 was approximately 362 billion USD. Meanwhile, the country's army spending in the same year was around 1.01 billion USD. It is worth noting that while army spending is an important aspect of a country's budget, it is not the only factor that contributes to its economic growth and development. Other factors such as infrastructure, education, and healthcare also play a crucial role in shaping a country's economy.
تعد Langchain مكتبة رائعة وتحتوي على غلاف لقواعد بيانات SQL يسمح لك بالاستعلام عنها باستخدام اللغة الطبيعية. يسمى المجمع SQLDatabaseChain
ويمكن استخدامه على النحو التالي:
from langchain import OpenAI , SQLDatabase , SQLDatabaseChain
db = SQLDatabase . from_uri ( "sqlite:///../llm4dev/data/sqldb/wdi.db" )
llm = OpenAI ( temperature = 0 , verbose = True )
db_chain = SQLDatabaseChain . from_llm ( llm , db , verbose = True , return_intermediate_steps = True )
out = db_chain ( "What is the GDP and army spending of the Philippines in 2020?" )
> Entering new SQLDatabaseChain chain...
What is the GDP and army spending of the Philippines in 2020 ?
SQLQuery:SELECT " value " FROM wdi WHERE " name " = ' GDP (current US$) ' AND " country_iso3 " = ' PHL ' AND " year " = 2020
UNION
SELECT " value " FROM wdi WHERE " name " = ' Military expenditure (% of GDP) ' AND " country_iso3 " = ' PHL ' AND " year " = 2020
SQLResult: [(1.01242392260698,), (361751116292.541,)]
Answer:The GDP of the Philippines in 2020 was 1.01242392260698 and the military expenditure (% of GDP) was 361751116292.541.
> Finished chain.
لسوء الحظ، كان الجواب The GDP of the Philippines in 2020 was 1.01242392260698 and the military expenditure (% of GDP) was 361751116292.541.
غير صحيح لأنه تم تبديل القيم.
أحد أهداف LLM4Data هو تطوير حلول حول القيود المفروضة على الحلول مفتوحة المصدر الحالية كما يتم تطبيقها على بيانات التطوير واكتشاف المعرفة.
طلبات السحب هي موضع ترحيب. لإجراء تغييرات كبيرة، يرجى فتح مشكلة أولاً لمناقشة ما تريد تغييره.
يرجى الاطلاع على CONTRIBUTING.md لمزيد من المعلومات.
LLM4Data مرخصة بموجب اتفاقية ترخيص المجتمع الرئيسي للبنك الدولي.