L♾️pGPT
Kerangka Kerja GPT Otomatis Modular
L♾️pGPT adalah implementasi ulang proyek Auto-GPT yang populer sebagai paket python yang tepat, ditulis dengan mempertimbangkan modularitas dan ekstensibilitas.
? Ini menginstal versi stabil terbaru dari L♾️pGPT. Ini direkomendasikan untuk sebagian besar pengguna:
pip install loopgpt
Dua metode di bawah ini menginstal versi pengembangan terbaru L♾️pGPT. Perhatikan bahwa versi ini mungkin tidak stabil:
pip install git+https://www.github.com/farizrahman4u/loopgpt.git@main
git clone https://www.github.com/farizrahman4u/loopgpt.git
cd loopgpt
pip install -e .
git clone https://www.github.com/farizrahman4u/loopgpt.git
cd loopgpt
docker build -t loopgpt:local-dev .
.env
Buat file .env
di direktori kerja Anda saat ini (di mana pun Anda akan menjalankan L♾️pGPT) dan tambahkan baris berikut ke dalamnya:
OPENAI_API_KEY= " <your-openai-api-key> "
? PENTING ?
Pengguna Windows, pastikan "tampilkan ekstensi file" diaktifkan di penjelajah file Anda. Jika tidak, file Anda akan diberi nama .env.txt
, bukan .env
.
Tetapkan variabel lingkungan bernama OPENAI_API_KEY
ke Kunci API OpenAI Anda.
Cara mengatur variabel lingkungan:
Mari buat agen dengan skrip Python baru.
from loopgpt . agent import Agent
agent = Agent ()
L♾️pGPT menggunakan gpt-3.5-turbo
secara default dan semua output yang ditampilkan di sini dibuat menggunakannya. Pengguna GPT-4 dapat menyetel model="gpt-4"
sebagai gantinya:
agent = Agent ( model = "gpt-4" )
agent . name = "ResearchGPT"
agent . description = "an AI assistant that researches and finds the best tech products"
agent . goals = [
"Search for the best headphones on Google" ,
"Analyze specs, prices and reviews to find the top 5 best headphones" ,
"Write the list of the top 5 best headphones and their prices to a file" ,
"Summarize the pros and cons of each headphone and write it to a different file called 'summary.txt'" ,
]
Dan kita berangkat! Mari kita jalankan CLI Agen:
agent . cli ()
Simpan file Python Anda sebagai research_gpt.py
dan jalankan:
python research_gpt.py
Anda dapat keluar dari CLI dengan mengetikkan "exit".
Jika continuous
diatur ke True
, agen tidak akan meminta izin pengguna untuk menjalankan perintah. Ini mungkin masuk ke putaran tak terbatas, jadi gunakanlah dengan risiko Anda sendiri!
agent . cli ( continuous = True )
Anda dapat menjalankan L♾️pGPT langsung dari baris perintah tanpa harus menulis kode python apa pun juga:
loopgpt run
Jalankan loopgpt --help
untuk melihat semua opsi yang tersedia.
Anda dapat menjalankan L♾️pGPT dalam mode yang disebutkan sebelumnya, menggunakan Docker:
# CLI mode
docker run -i --rm loopgpt:local-dev loopgpt run
# Script mode example
docker run -i --rm -v " $( pwd ) /scripts:/scripts " loopgpt:local-dev python /scripts/myscript.py
Agen L♾️pGPT dilengkapi dengan seperangkat alat bawaan yang memungkinkan mereka melakukan berbagai tugas dasar seperti pencarian web, operasi sistem file, dll. Anda dapat melihat alat ini dengan print(agent.tools)
.
Selain alat bawaan ini, Anda juga dapat menambahkan alat Anda sendiri ke kotak peralatan agen.
Mari kita buat WeatherGPT, asisten AI untuk segala hal tentang cuaca.
Sebuah alat yang diwarisi dari BaseTool
dan Anda hanya perlu menulis dokumen untuk mengaktifkan dan menjalankan alat Anda!
from loopgpt . tools import BaseTool
class GetWeather ( BaseTool ):
"""Quickly get the weather for a given city
Args:
city (str): name of the city
Returns:
dict: The weather report for the city
"""
def run ( self , city ):
...
L♾️pGPT memberikan ID default ke alat Anda tetapi Anda dapat menggantinya jika ingin:
class GetWeather ( BaseTool ):
"""Quickly get the weather for a given city
Args:
city (str): name of the city
Returns:
dict: The weather report for the city
"""
@ property
def id ( self ):
return "get_weather_command"
Sekarang mari kita tentukan apa yang akan dilakukan alat kita dalam metode run
:
import requests
# Define your custom tool
class GetWeather ( BaseTool ):
"""Quickly get the weather for a given city
Args:
city (str): name of the city
Returns:
dict: The weather report for the city
"""
def run ( self , city ):
try :
url = "https://wttr.in/{}?format=%l+%C+%h+%t+%w+%p+%P" . format ( city )
data = requests . get ( url ). text . split ( " " )
keys = ( "location" , "condition" , "humidity" , "temperature" , "wind" , "precipitation" , "pressure" )
data = dict ( zip ( keys , data ))
return data
except Exception as e :
return f"An error occurred while getting the weather: { e } ."
Itu saja! Anda telah membuat alat khusus pertama Anda. Mari daftarkan ke agen baru dan jalankan:
from loopgpt . tools import WriteToFile
import loopgpt
# Register custom tool type
# This is actually not required here, but is required when you load a saved agent with custom tools.
loopgpt . tools . register_tool_type ( GetWeather )
# Create Agent
agent = loopgpt . Agent ( tools = [ GetWeather , WriteToFile ])
agent . name = "WeatherGPT"
agent . description = "an AI assistant that tells you the weather"
agent . goals = [
"Get the weather for NewYork and Beijing" ,
"Give the user tips on how to dress for the weather in NewYork and Beijing" ,
"Write the tips to a file called 'dressing_tips.txt'"
]
# Run the agent's CLI
agent . cli ()
Mari kita lihat file dressing_tips.txt
yang ditulis WeatherGPT untuk kita:
dressing_tips.txt
- It's Clear outside with a temperature of +10°C in Beijing. Wearing a light jacket and pants is recommended.
- It's Overcast outside with a temperature of +11°C in New York. Wearing a light jacket, pants, and an umbrella is recommended.
Berbeda dengan Auto-GPT, agen tidak berhenti ketika pengguna menolak eksekusi suatu perintah. Sebaliknya ia meminta umpan balik dari pengguna untuk memperbaiki jalannya.
Untuk memperbaiki arah agen, cukup tolak eksekusi dan berikan umpan balik:
Agen telah memperbarui tindakannya:
Anda dapat menyimpan status agen ke file json dengan:
agent . save ( "ResearchGPT.json" )
Ini menyimpan konfigurasi agen (model, nama, deskripsi, dll) serta status internalnya (status percakapan, memori, status alat, dll). Anda juga dapat menyimpan konfigurasi saja dengan meneruskan include_state=False
ke agent.save()
:
agent . save ( "ResearchGPT.json" , include_state = False )
Kemudian lanjutkan dari bagian terakhir yang Anda tinggalkan dengan:
import loopgpt
agent = loopgpt . Agent . load ( "ResearchGPT.json" )
agent . cli ()
atau dengan menjalankan agen yang disimpan dari baris perintah:
loopgpt run ResearchGPT.json
Anda dapat mengonversi status agen ke kamus python yang kompatibel dengan json alih-alih menulis ke file:
agent_config = agent . config ()
Untuk mendapatkan konfigurasi saja tanpa status internal:
agent_config = agent . config ( include_state = False )
Untuk memuat ulang agen dari konfigurasi, gunakan:
import loopgpt
agent = loopgpt . Agent . from_config ( agent_config )
Untuk dukungan penelusuran Google resmi, Anda perlu menyiapkan dua kunci variabel lingkungan GOOGLE_API_KEY
dan CUSTOM_SEARCH_ENGINE_ID
, berikut cara mendapatkannya:
CUSTOM_SEARCH_ENGINE_ID
.GOOGLE_API_KEY
.Jika ini tidak ada, L♾️pGPT akan kembali menggunakan Pencarian DuckDuckGo.
Kami membutuhkan BANYAK Bantuan! Silakan buka terbitan atau PR jika Anda ingin berkontribusi.
Butuh bantuan? Bergabunglah dengan Perselisihan kami.