Auto-GPT เป็นเครื่องมือ AI โอเพ่นซอร์สที่ใช้ประโยชน์จาก API GPT-4 หรือ GPT-3.5 จาก OpenAI เพื่อบรรลุวัตถุประสงค์ที่ผู้ใช้กำหนดไว้ในภาษาธรรมชาติ มันทำสิ่งนี้โดยการแยกงานหลักออกเป็นส่วนประกอบที่เล็กลงและใช้ทรัพยากรต่าง ๆ ในกระบวนการวัฏจักรอย่างอิสระ
ในคู่มือนี้เราจะสำรวจคุณสมบัติต่าง ๆ ของ AutoGPT และร่างแนวทางปฏิบัติที่ดีที่สุดและเคล็ดลับในการใช้ AutoGPT สำหรับการเข้ารหัส
git clone https://github.com/significant-gravitas/auto-gpt.git บนเทอร์มินัลของคุณหรือคลิกที่ปุ่ม "รหัส" บนหน้าที่เก็บและดาวน์โหลดไฟล์ซิปautogpt --version คุณควรดูหมายเลขเวอร์ชันที่แสดงในเทอร์มินัลนอกจากนี้คุณยังสามารถใช้สภาพแวดล้อมเสมือนจริงเพื่อมีการติดตั้ง AutoGPT และเพื่อให้แน่ใจว่าคุณจะไม่พบข้อผิดพลาดใด ๆ เมื่อติดตั้งการพึ่งพาหรือเรียกใช้ AutoGPT
ตรวจสอบให้แน่ใจว่าได้อัปเดต '.env' ด้วยการกำหนดค่าของคุณเองและปุ่ม API ของคุณเอง ไฟล์มีทุก API ที่คุณอาจต้องการ คุณสามารถ ommit บางอย่างถ้าคุณจะไม่ใช้เช่นสำหรับการสร้างภาพ แต่ให้แน่ใจว่าคุณมี:
คีย์ OpenAI API - คีย์นี้จำเป็นต้องใช้ OpenAI API ซึ่ง AutoGPT ถูกสร้างขึ้นด้านบนของ คุณสามารถรับคีย์ API ได้โดยลงทะเบียนสำหรับโปรแกรม OpenAI API:
GITHUB_API_KEY - คีย์นี้จำเป็นต้องอนุญาตให้เข้าถึง GitHub API ของคุณ คุณสามารถรับคีย์นี้ได้โดยทำตามขั้นตอนในเว็บไซต์ GitHub
github_username ของคุณ
คุณสามารถเพิ่ม API ทั้งหมดได้ที่นี่ '.env' เป็นคำอธิบายด้วยตนเองเมื่อคุณได้รับกุญแจเหล่านี้คุณต้องแก้ไขไฟล์ .env ในที่เก็บและเพิ่มคีย์ API ที่ระบุไว้ข้างต้น
ยังให้ความสนใจกับด้านล่าง:
คุณต้องแก้ไขไฟล์ .env ในที่เก็บและเพิ่มปุ่ม API ที่ระบุไว้ด้านบน นี่เป็นเพราะคีย์ API เป็นข้อมูลที่ละเอียดอ่อนซึ่งไม่ควรถูกบันทึกไว้ในแอปพลิเคชัน
คุณต้องเพิ่มพรอมต์ของคุณเองลงในไฟล์ prompts.json เพื่อให้ AutoGPT มีประโยชน์มากขึ้นสำหรับกรณีการใช้งานของคุณโดยเฉพาะ พรอมต์ที่ให้ไว้ในที่เก็บเป็นพรอมต์ทั่วไปที่อาจไม่สามารถใช้ได้กับโครงการของคุณ ด้วยการเพิ่มพรอมต์ของคุณเองคุณสามารถฝึกอบรม Autogpt เพื่อสร้างคำตอบที่ปรับให้เหมาะกับกรณีการใช้งานเฉพาะของคุณ
หากต้องการแจ้งให้ทราบล่วงหน้าให้ใช้คำสั่ง python -m autogpt ในเทอร์มินัลของคุณ ตรวจสอบให้แน่ใจว่าคุณอยู่ในเส้นทางที่ถูกต้อง ถ้าไม่ตั้งค่าโดย 'CD Path'
เพื่อผลลัพธ์ที่ดีที่สุดตรวจสอบให้แน่ใจว่าพรอมต์ของคุณมีความเฉพาะเจาะจงและชัดเจน สิ่งนี้จะช่วยให้ Autogpt เข้าใจสิ่งที่คุณพยายามบรรลุและช่วยสร้างการตอบสนองที่แม่นยำยิ่งขึ้น
เมื่อตรวจสอบการตอบสนองของโมเดลโปรดทราบว่า Autogpt เป็นแบบจำลองภาษาและไม่ใช่มนุษย์ ดังนั้นจึงอาจสร้างคำตอบที่ไม่ถูกต้องหรือเหมาะสมกับกรณีการใช้งานของคุณ มันขึ้นอยู่กับคุณที่จะตรวจสอบคำตอบและทำการแก้ไขที่จำเป็น
อีกวิธีหนึ่งในการใช้ AutoGPT คือการรวมเข้ากับรหัสของคุณ คุณสามารถดูคำสั่งในโฟลเดอร์โคลนและใช้เพื่อสร้างการตอบกลับทางโปรแกรม สิ่งนี้จะมีประโยชน์หากคุณต้องการสร้างคำตอบในบริบทเฉพาะ
นี่คือวิธีที่ดีที่สุดในการใช้ AutoGPT สำหรับวิศวกรรมที่รวดเร็ว:
@command Decorator ใช้เพื่อกำหนดคำสั่งที่กำหนดเอง ต้องใช้สามข้อโต้แย้ง:
name : ชื่อของคำสั่งdescription : คำอธิบายสั้น ๆ ของคำสั่งparams : สตริงที่แสดงถึงพารามิเตอร์ที่คาดหวังสำหรับคำสั่ง นี่คือตัวอย่างของการใช้ @command decorator เพื่อกำหนดคำสั่งที่กำหนดเองที่เรียกว่า execute_python_file :
@ command ( "execute_python_file" , "Execute Python File" , '"filename": "<filename>"' )
def execute_python_file ( filename : str ) -> str :
# Implementation of the command ในการเรียกใช้คำสั่งเชลล์คุณสามารถใช้โมดูล subprocess นี่คือสองวิธีสำหรับการเรียกใช้คำสั่งเชลล์:
subprocess.run() :วิธีนี้เรียกใช้คำสั่งและรอให้เสร็จสมบูรณ์ มันส่งคืนเอาต์พุต (stdout และ stderr) ของคำสั่ง
result = subprocess . run ( command_line , capture_output = True , shell = True )
output = f"STDOUT: n { result . stdout } n STDERR: n { result . stderr } " subprocess.Popen() :วิธีนี้เรียกใช้คำสั่งเป็นกระบวนการแยกต่างหากและส่งคืนทันที มันจะมีประโยชน์สำหรับการเรียกใช้คำสั่งที่ไม่ปิดกั้น
process = subprocess . Popen (
command_line , shell = True , stdout = subprocess . DEVNULL , stderr = subprocess . DEVNULL
)
return f"Subprocess started with PID:' { str ( process . pid ) } '" ในการสร้างคำสั่งที่กำหนดเองที่เรียกใช้คำสั่งเชลล์คุณสามารถใช้ @command Decorator พร้อมกับวิธี subprocess :
@ command ( "execute_shell" , "Execute Shell Command" , '"command_line": "<command_line>"' )
def execute_shell ( command_line : str ) -> str :
result = subprocess . run ( command_line , capture_output = True , shell = True )
output = f"STDOUT: n { result . stdout } n STDERR: n { result . stderr } "
return output โมดูล analyze_code ได้รับการออกแบบมาเพื่อวิเคราะห์ตัวอย่างโค้ดที่กำหนดและให้คำแนะนำสำหรับการปรับปรุง มันใช้ @command Decorator เพื่อกำหนดคำสั่งที่กำหนดเองที่เรียกว่า analyze_code ฟังก์ชั่นใช้สตริงที่มีรหัสที่จะวิเคราะห์และส่งคืนรายการคำแนะนำ
นี่คือคำอธิบายที่ง่ายของรหัส:
analyze_code ด้วย @command Decorator: @ command ( "analyze_code" , "Analyze Code" , '"code": "<full_code_string>"' )
def analyze_code ( code : str ) -> list [ str ]: function_string = "def analyze_code(code: str) -> list[str]:"
args = [ code ]
description_string = (
"Analyzes the given code and returns a list of suggestions for improvements."
) return call_ai_function ( function_string , args , description_string ) ฟังก์ชั่น improve_code ได้รับการออกแบบมาเพื่อปรับปรุงตัวอย่างโค้ดที่กำหนดตามรายการของคำแนะนำที่ให้ไว้ มันใช้ @command Decorator เพื่อกำหนดคำสั่งที่กำหนดเองที่เรียกว่า improve_code ฟังก์ชั่นใช้รายการคำแนะนำและสตริงที่มีรหัสที่จะปรับปรุงและจะส่งคืนสตริงรหัสใหม่พร้อมการปรับปรุงที่แนะนำ
นี่คือคำอธิบายที่ง่ายของรหัส:
improve_code ด้วย @command Decorator: @ command ( "improve_code" , "Get Improved Code" , '"suggestions": "<list_of_suggestions>", "code": "<full_code_string>"' )
def improve_code ( suggestions : list [ str ], code : str ) -> str : function_string = "def generate_improved_code(suggestions: list[str], code: str) -> str:"
args = [ json . dumps ( suggestions ), code ]
description_string = (
"Improves the provided code based on the suggestions"
" provided, making no other changes."
) return call_ai_function ( function_string , args , description_string ) หากต้องการใช้ฟังก์ชั่น improve_code ให้ส่งรายการคำแนะนำและสตริงที่มีตัวอย่างโค้ดที่คุณต้องการปรับปรุง:
suggestions = [
"Replace the print statement with a return statement." ,
"Add type hints to the function."
]
code_to_improve = '''
def some_function():
print("Hello, World!")
'''
improved_code = improve_code ( suggestions , code_to_improve )
print ( improved_code ) ฟังก์ชั่น improve_code จะเรียกใช้ฟังก์ชัน AI ซึ่งจะใช้ OpenAI API เพื่อใช้การปรับปรุงที่แนะนำกับรหัสและสร้างรหัสรุ่นใหม่ที่ปรับปรุงใหม่ โปรดทราบว่าคุณภาพของการปรับปรุงขึ้นอยู่กับความเข้าใจของรูปแบบภาษาเกี่ยวกับคำแนะนำและความสามารถในการใช้อย่างถูกต้อง
prompt = "Generate documentation for the function 'Function name'"
generator = response = openai.Completion.create(
engine=engine,
prompt=prompt,
max_tokens=150,
n=1,
stop=None,
temperature=1.2,
presence_penalty=0.5,
frequency_penalty=0.5,
)
ใช้ฟังก์ชั่น improve_code สำหรับการดีบักคุณสามารถทำตามขั้นตอนด้านล่าง:
ระบุปัญหาหรือข้อบกพร่องในรหัสของคุณ คุณสามารถทำสิ่งนี้ได้ด้วยตนเองหรือคุณสามารถใช้เครื่องมือเช่นผ้าลินินวิเคราะห์สแตติกหรือ debuggers เพื่อช่วยระบุปัญหา
สร้างรายการคำแนะนำตามปัญหาที่ระบุ คำแนะนำแต่ละข้อควรอธิบายวิธีแก้ไขปัญหาหรือข้อผิดพลาดเฉพาะในรหัส
เรียกฟังก์ชั่น improve_code ผ่านรายการคำแนะนำและข้อมูลโค้ดที่มีปัญหาเป็นอาร์กิวเมนต์:
suggestions = [
"Fix the IndexError by using a conditional statement." ,
"Handle the ZeroDivisionError exception."
]
buggy_code = '''
def buggy_function(a, b):
result = a / b
return result
def another_buggy_function(lst):
return lst[0]
'''
improved_code = improve_code ( suggestions , buggy_code )
print ( improved_code )improve_code ตรวจสอบให้แน่ใจว่าการปรับปรุง AI-Generated สอดคล้องกับคำแนะนำของคุณและแก้ไขปัญหาที่ระบุไว้อย่างถูกต้อง ตรวจสอบว่ารหัสที่ได้รับการปรับปรุงใช้งานได้ตามที่คาดไว้ - Choose the search function: `google_search` for DuckDuckGo or `google_official_search` for the official Google API.
- Call the chosen function with your search query:
```python
query = "example search query"
num_results = 5
# Perform the search using DuckDuckGo
search_results = google_search(query, num_results)
print(search_results)
# Or, perform the search using the official Google API
# search_results = google_official_search(query, num_results)
# print(search_results)
ฟังก์ชั่นส่งคืนรายการ URL ผลการค้นหาที่ตรงกับแบบสอบถามที่กำหนด ตรวจสอบให้แน่ใจว่าคุณได้บันทึก Google API เป็น Secrets.json
โทรหาฟังก์ชั่น browse_website ด้วย URL ของเว็บไซต์ที่คุณต้องการขูดและคำถามที่เกี่ยวข้องกับเนื้อหาที่คุณกำลังมองหา:
url = "https://example.com"
question = "What is the main purpose of the website?"
answer_and_links = browse_website ( url , question )
print ( answer_and_links ) ฟังก์ชั่น browse_website ใช้ scrape_text_with_selenium เพื่อขูดเนื้อหาข้อความของเว็บไซต์และ scrape_links_with_selenium เพื่อแยกลิงค์
list_files ด้วยไดเรกทอรีที่คุณต้องการค้นหา: directory = "path/to/directory"
all_files = list_files ( directory ) search_criteria = "example"
matching_files = [ file for file in all_files if search_criteria in file ]
print ( matching_files ) ในตัวอย่างนี้ matching_files จะมีรายการของไฟล์ทั้งหมดในไดเรกทอรีที่ระบุ (และไดเรกทอรีย่อย) ที่มีสตริง search_criteria ในชื่อของพวกเขา แก้ไขเงื่อนไขการกรองตามที่จำเป็นเพื่อให้ตรงกับข้อกำหนดการค้นหาเฉพาะของคุณ
Autogpt มีฟังก์ชั่น clone_repository ที่ช่วยให้คุณสามารถโคลนพื้นที่เก็บข้อมูล Git จาก URL ที่กำหนดไปยังไดเรกทอรีท้องถิ่นบนเครื่องของคุณ หากต้องการแจ้งให้ทราบสำหรับอินพุตและโคลนที่เก็บ GIT โดยใช้ฟังก์ชัน clone_repository ให้ทำตามขั้นตอนเหล่านี้:
repo_url = "repository URL"
clone_path = "the path to clone the repository"clone_repository ด้วย URL และเส้นทางที่ให้ไว้: result = clone_repository ( repo_url , clone_path ) รหัสนี้เรียกฟังก์ชัน clone_repository ซึ่งโคลนที่เก็บโดยใช้ข้อมูลรับรองการตรวจสอบสิทธิ์ GitHub ที่ให้ไว้จากวัตถุ Config
ใช้ AutoGPT เพื่อสร้างความคิดเห็นเชิงพรรณนาสำหรับรหัสของคุณโดยอัตโนมัติ สิ่งนี้สามารถช่วยให้รหัสของคุณอ่านง่ายขึ้นและเข้าใจได้ง่ายขึ้นโดยเฉพาะอย่างยิ่งสำหรับสมาชิกในทีมที่อาจไม่คุ้นเคยกับ codebase
ใช้ AutoGPT เพื่อสร้างรหัสหม้อไอน้ำสำหรับโครงการของคุณ ตัวอย่างเช่นคุณสามารถใช้ AutoGPT เพื่อสร้างรหัสสำหรับการตั้งค่าการบันทึกการสร้างไฟล์การกำหนดค่าหรือการเริ่มต้นฐานข้อมูล
ใช้ AutoGPT เพื่อสร้างกรณีทดสอบสำหรับรหัสของคุณ สิ่งนี้สามารถช่วยให้มั่นใจได้ว่ารหัสของคุณทำงานตามที่คาดไว้และการเปลี่ยนแปลงใด ๆ ที่คุณทำกับรหัสไม่ได้แนะนำข้อบกพร่องใหม่
ใช้ AUTOGPT เพื่อสร้างเอกสารสำหรับโครงการของคุณ AutoGPT สามารถสร้างเอกสาร API คู่มือผู้ใช้และเอกสารประเภทอื่น ๆ โดยอัตโนมัติประหยัดเวลาและความพยายามของคุณ
Autogpt เป็นเครื่องมือที่ทรงพลังที่สามารถช่วยคุณในการเข้ารหัสและวิศวกรรมที่รวดเร็ว มันสามารถสร้างตัวอย่างโค้ดตรวจสอบไวยากรณ์รหัสปรับปรุงรหัสสร้างกรณีทดสอบสร้างเอกสารและเรียกใช้ไฟล์ Python โดยใช้ AutoGPT คุณสามารถประหยัดเวลาและเพิ่มผลผลิต