LLM4Data adalah pustaka Python yang dirancang untuk memfasilitasi penerapan model bahasa besar (LLM) dan kecerdasan buatan untuk pengembangan data dan penemuan pengetahuan. Hal ini dimaksudkan untuk memberdayakan pengguna dan organisasi untuk menemukan dan berinteraksi dengan data pembangunan dengan cara yang inovatif melalui bahasa alami.
LLM4Data mendukung aplikasi DevData Chat, yang akan segera tersedia sebagai proyek sumber terbuka. Aplikasi ini menunjukkan berbagai cara LLM (Model Bahasa) dan AI meningkatkan penemuan dan interaksi dengan data dan pengetahuan, menghadirkan solusi inovatif untuk membantu mengatasi kesenjangan kemampuan untuk ditemukan dan aksesibilitas.
Pustaka LLM4Data berisi kumpulan solusi penemuan dan augmentasi data untuk berbagai tipe data termasuk dokumen, indikator, mikrodata, data geospasial, dan banyak lagi. Versi perpustakaan saat ini mencakup solusi untuk indikator WDI. Solusi tambahan akan ditambahkan dalam rilis mendatang.
Dibangun berdasarkan standar dan skema metadata yang ada, pengguna dan organisasi dapat memperoleh manfaat dari LLM untuk meningkatkan aplikasi berbasis data, memungkinkan pemrosesan bahasa alami, pembuatan teks, dan banyak lagi dengan LLM4Data. Perpustakaan berfungsi sebagai jembatan antara LLM dan data pengembangan menggunakan perpustakaan sumber terbuka, menawarkan antarmuka yang mulus untuk memanfaatkan kemampuan model bahasa yang kuat ini.
Gunakan pip manajer paket untuk menginstal LLM4Data.
pip install llm4data
Contoh berikut menunjukkan cara menggunakan LLM4Data untuk menghasilkan URL API WDI dan kueri SQL dari perintah.
Contoh tambahan dapat ditemukan di sini.
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 )
Outputnya akan terlihat seperti berikut:
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
Perhatikan bahwa URL yang dihasilkan sudah menyertakan kode negara dan indikator yang relevan dengan perintah tersebut. Ia memahami negara mana yang merupakan tetangga Filipina. Hal ini juga memahami kode indikator mana yang mungkin memberikan data yang relevan untuk PDB dan emisi CO2.
URL juga menyertakan rentang tanggal, format, dan sumber data. Pengguna kemudian dapat mengubah URL sesuai kebutuhan, dan menggunakannya untuk menanyakan API 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.
Meskipun data WDI dapat dimuat ke dalam kerangka data Pandas, hal ini tidak selalu praktis; misalnya, mengembangkan aplikasi yang dapat menjawab pertanyaan data sewenang-wenang.
Pustaka LLM4Data menyertakan antarmuka SQL ke data WDI, memungkinkan pengguna untuk menanyakan data menggunakan SQL.
Antarmuka ini akan memungkinkan pengguna untuk menanyakan data menggunakan SQL, dan mengembalikan hasilnya sebagai kerangka data Pandas. Antarmuka juga memungkinkan pengguna untuk menanyakan data menggunakan SQL, dan mengembalikan hasilnya sebagai objek 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}
Pustaka LLM4Data juga menyertakan dukungan untuk menghasilkan penjelasan naratif tentang respons kueri SQL. Hal ini berguna untuk menghasilkan deskripsi data dalam bahasa alami, yang dapat digunakan untuk memberikan konteks kepada pengguna dan untuk menjelaskan hasil kueri data.
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 adalah perpustakaan yang bagus dan memiliki pembungkus untuk database SQL yang memungkinkan Anda menanyakannya menggunakan bahasa alami. Pembungkusnya disebut SQLDatabaseChain
dan dapat digunakan sebagai berikut:
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.
Sayangnya jawabannya The GDP of the Philippines in 2020 was 1.01242392260698 and the military expenditure (% of GDP) was 361751116292.541.
salah karena nilainya telah ditukar.
Salah satu tujuan LLM4Data adalah untuk mengembangkan solusi seputar keterbatasan solusi sumber terbuka yang ada sebagaimana diterapkan pada pengembangan data dan penemuan pengetahuan.
Permintaan tarik dipersilakan. Untuk perubahan besar, silakan buka terbitan terlebih dahulu untuk mendiskusikan apa yang ingin Anda ubah.
Silakan lihat CONTRIBUTING.md untuk informasi lebih lanjut.
LLM4Data dilisensikan berdasarkan Perjanjian Lisensi Komunitas Utama Bank Dunia.