LLM4Data เป็นไลบรารี Python ที่ออกแบบมาเพื่ออำนวยความสะดวกในการใช้งานโมเดลภาษาขนาดใหญ่ (LLM) และปัญญาประดิษฐ์สำหรับข้อมูลการพัฒนาและการค้นพบความรู้ มีจุดมุ่งหมายเพื่อให้ผู้ใช้และองค์กรสามารถค้นพบและโต้ตอบกับข้อมูลการพัฒนาในรูปแบบใหม่ ๆ ผ่านทางภาษาธรรมชาติ
LLM4Data ขับเคลื่อนแอปพลิเคชัน DevData Chat ซึ่งจะเปิดให้ใช้งานในรูปแบบโอเพ่นซอร์สเร็วๆ นี้ แอปพลิเคชันนี้สาธิตวิธีการต่างๆ ที่ LLM (โมเดลภาษา) และ AI ปรับปรุงการค้นพบและการโต้ตอบกับข้อมูลและความรู้ โดยนำเสนอโซลูชันที่เป็นนวัตกรรมเพื่อช่วยแก้ไขช่องว่างในการค้นพบและการเข้าถึง
ไลบรารี LLM4Data ประกอบด้วยชุดโซลูชันการค้นพบและการเพิ่มข้อมูลสำหรับข้อมูลประเภทต่างๆ รวมถึงเอกสาร ตัวบ่งชี้ ไมโครดาต้า ข้อมูลภูมิสารสนเทศ และอื่นๆ ไลบรารีเวอร์ชันปัจจุบันมีโซลูชันสำหรับตัวบ่งชี้ WDI โซลูชั่นเพิ่มเติมจะถูกเพิ่มในรุ่นต่อๆ ไป
สร้างขึ้นตามมาตรฐานและสคีมาข้อมูลเมตาที่มีอยู่ ผู้ใช้และองค์กรจะได้รับประโยชน์จาก LLM เพื่อปรับปรุงแอปพลิเคชันที่ขับเคลื่อนด้วยข้อมูล ช่วยให้สามารถประมวลผลภาษาธรรมชาติ การสร้างข้อความ และอื่นๆ อีกมากมายด้วย LLM4Data ไลบรารีทำหน้าที่เป็นสะพานเชื่อมระหว่าง LLM และข้อมูลการพัฒนาโดยใช้ไลบรารีโอเพ่นซอร์ส โดยนำเสนออินเทอร์เฟซที่ราบรื่นเพื่อยกระดับความสามารถของโมเดลภาษาที่ทรงพลังเหล่านี้
ใช้ pip ตัวจัดการแพ็คเกจเพื่อติดตั้ง LLM4Data
pip install llm4data
ตัวอย่างต่อไปนี้สาธิตวิธีใช้ LLM4Data เพื่อสร้าง WDI API URL และการสืบค้น 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 ที่สร้างขึ้นมีรหัสประเทศและตัวบ่งชี้ที่เกี่ยวข้องกับข้อความแจ้งอยู่แล้ว เข้าใจว่าประเทศใดเป็นเพื่อนบ้านของฟิลิปปินส์ นอกจากนี้ยังเข้าใจด้วยว่ารหัสตัวบ่งชี้ใดมีแนวโน้มที่จะให้ข้อมูลที่เกี่ยวข้องกับการปล่อย GDP และ CO2
นอกจากนี้ URL ยังรวมถึงช่วงวันที่ รูปแบบ และแหล่งที่มาของข้อมูลด้วย จากนั้นผู้ใช้สามารถปรับแต่ง URL ได้ตามต้องการ และใช้เพื่อค้นหา WDI API
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 จะสามารถโหลดลงใน Dataframe ของ Pandas ได้ แต่ก็ไม่สามารถทำได้เสมอไป เช่นการพัฒนาแอพพลิเคชั่นที่สามารถตอบคำถามข้อมูลได้อย่างอิสระ
ไลบรารี LLM4Data มีอินเทอร์เฟซ SQL สำหรับข้อมูล WDI ช่วยให้ผู้ใช้สามารถสืบค้นข้อมูลโดยใช้ SQL
อินเทอร์เฟซนี้จะอนุญาตให้ผู้ใช้สืบค้นข้อมูลโดยใช้ SQL และส่งคืนผลลัพธ์เป็น Pandas dataframe อินเทอร์เฟซยังอนุญาตให้ผู้ใช้สืบค้นข้อมูลโดยใช้ 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 เป็นไลบรารี่ที่ยอดเยี่ยมและมี wrapper สำหรับฐานข้อมูล SQL ที่ให้คุณสืบค้นโดยใช้ภาษาธรรมชาติ wrapper เรียกว่า 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 ได้รับอนุญาตภายใต้ข้อตกลงใบอนุญาตชุมชนหลักของธนาคารโลก