git clone https://github.com/LOGIC-10/RepoAgent.git
cd RepoAgentการตั้งค่าด้วย PDM
เริ่มต้นสภาพแวดล้อมเสมือนจริงของ Python ตรวจสอบให้แน่ใจว่าได้เรียกใช้ไดเรกทอรี CMD ด้านล่าง /RepoAgent :
pdm venv create --name repoagentเปิดใช้งานสภาพแวดล้อมเสมือนจริง
ติดตั้งการพึ่งพาโดยใช้ PDM
pdm installก่อนที่จะกำหนดค่าพารามิเตอร์เฉพาะสำหรับ repoagent โปรดตรวจสอบให้แน่ใจว่า OpenAI API ได้รับการกำหนดค่าเป็นตัวแปรสภาพแวดล้อมในบรรทัดคำสั่ง:
export OPENAI_API_KEY=YOUR_API_KEY # on Linux/Mac
set OPENAI_API_KEY=YOUR_API_KEY # on Windows
$Env :OPENAI_API_KEY = " YOUR_API_KEY " # on Windows (PowerShell) ป้อนไดเรกทอรีรากของ repoagent และลองใช้คำสั่งต่อไปนี้ในเทอร์มินัล:
repoagent run # this command will generate doc, or update docs(pre-commit-hook will automatically call this)
repoagent run --print-hierarchy # Print how repo-agent parse the target repoคำสั่งเรียกใช้รองรับธงทางเลือกต่อไปนี้ (หากตั้งค่าจะแทนที่ค่าเริ่มต้นการกำหนดค่า):
-m , --model ข้อความแบบจำลอง: ระบุโมเดลที่จะใช้เพื่อให้เสร็จสมบูรณ์ ค่าเริ่มต้น: gpt-3.5-turbo-t , --temperature ลอย: ตั้งอุณหภูมิการสร้างสำหรับแบบจำลอง ค่าที่ต่ำกว่าทำให้แบบจำลองกำหนดขึ้นได้มากขึ้น ค่าเริ่มต้น: 0.2-r , --request-timeout Integer: กำหนดหมดเวลาในไม่กี่วินาทีสำหรับคำขอ API ค่าเริ่มต้น: 60-b , --base-url : URL พื้นฐานสำหรับการโทร API ค่าเริ่มต้น: https://api.openai.com/v1-tp , --target-repo-path พา ธ : เส้นทางระบบไฟล์ไปยังที่เก็บเป้าหมาย ใช้เป็นรูทสำหรับการสร้างเอกสาร ค่าเริ่มต้น: path/to/your/target/repository-hp , --hierarchy-path -ชื่อ: ชื่อหรือเส้นทางสำหรับไฟล์ลำดับชั้นของโครงการที่ใช้ในการจัดระเบียบโครงสร้างเอกสาร ค่าเริ่มต้น: .project_doc_record-mdp , --markdown-docs-path Text: เส้นทางโฟลเดอร์ที่เอกสารมาร์เดอร์จะถูกจัดเก็บหรือสร้าง ค่าเริ่มต้น: markdown_docs-i , --ignore-list text: รายการไฟล์หรือไดเรกทอรีที่จะเพิกเฉยในระหว่างการสร้างเอกสารคั่นด้วยเครื่องหมายจุลภาค-l , --language ข้อความภาษา: รหัส ISO 639 หรือชื่อภาษาสำหรับเอกสาร ค่าเริ่มต้น: Chinese-ll , --log-level [DEBUG | ข้อมูล | คำเตือน | ข้อผิดพลาด | สำคัญ]: ตั้งค่าระดับการบันทึกสำหรับแอปพลิเคชัน ค่าเริ่มต้น: INFOนอกจากนี้คุณยังสามารถลองคุณสมบัติต่อไปนี้
repoagent clean # Remove repoagent-related cache
repoagent diff # Check what docs will be updated/generated based on current code changeหากเป็นครั้งแรกที่คุณสร้างเอกสารประกอบสำหรับที่เก็บเป้าหมาย repoagent จะสร้างไฟล์ JSON โดยอัตโนมัติที่เก็บรักษาข้อมูลโครงสร้างส่วนกลางและโฟลเดอร์ชื่อ Markdown_docs ในไดเรกทอรีรากของที่เก็บเป้าหมายสำหรับการจัดเก็บเอกสาร
เมื่อคุณได้สร้างเอกสารทั่วโลกสำหรับที่เก็บเป้าหมายในขั้นต้นหรือหากโครงการที่คุณโคลนมีข้อมูลเอกสารทั่วโลกอยู่แล้วคุณสามารถเก็บรักษาเอกสารโครงการภายในได้อย่างราบรื่นและโดยอัตโนมัติกับทีมของคุณโดยการกำหนด ค่าเบ็ดล่วงหน้า ในที่เก็บเป้าหมาย!
pre-commitปัจจุบัน repoagent สนับสนุนการสร้างเอกสารสำหรับโครงการซึ่งต้องใช้การกำหนดค่าบางอย่างในที่เก็บเป้าหมาย
ขั้นแรกให้ตรวจสอบให้แน่ใจว่าที่เก็บเป้าหมายเป็นพื้นที่เก็บข้อมูล GIT และได้รับการเริ่มต้น
git initติดตั้งล่วงหน้าในที่เก็บเป้าหมายเพื่อตรวจจับการเปลี่ยนแปลงในที่เก็บ GIT
pip install pre-commit สร้างไฟล์ชื่อ .pre-commit-config.yaml ตัวอย่างมีดังนี้:
repos :
- repo : local
hooks :
- id : repo-agent
name : RepoAgent
entry : repoagent
language : system
pass_filenames : false # prevent from passing filenames to the hook
# You can specify the file types that trigger the hook, but currently only python is supported.
types : [python]สำหรับวิธีการกำหนดค่าเฉพาะของตะขอโปรดดูที่คอมมิชชั่นล่วงหน้า หลังจากกำหนดค่าไฟล์ YAML ให้ดำเนินการคำสั่งต่อไปนี้เพื่อติดตั้ง hook
pre-commit installด้วยวิธีนี้การกระทำของ GIT แต่ละครั้งจะทำให้เกิดเบ็ดของ repoagent ตรวจจับการเปลี่ยนแปลงในพื้นที่เก็บข้อมูลเป้าหมายโดยอัตโนมัติและสร้างเอกสารที่สอดคล้องกัน ถัดไปคุณสามารถทำการแก้ไขที่เก็บเป้าหมายได้เช่นการเพิ่มไฟล์ใหม่ไปยังที่เก็บเป้าหมายหรือแก้ไขไฟล์ที่มีอยู่ คุณเพียงแค่ต้องติดตามเวิร์กโฟลว์ GIT ปกติ: Git Add, Git Commit -m "ข้อความการกระทำของคุณ", git push hook repoagent จะกระตุ้นโดยอัตโนมัติที่ Git Commit ตรวจจับไฟล์ที่คุณเพิ่มในขั้นตอนก่อนหน้าและสร้างเอกสารที่เกี่ยวข้อง
หลังจากดำเนินการ repoagent จะแก้ไขไฟล์ที่จัดฉากโดยอัตโนมัติในที่เก็บเป้าหมายและส่งการกระทำอย่างเป็นทางการ หลังจากการดำเนินการเสร็จสมบูรณ์ "ผ่าน" สีเขียวจะปรากฏขึ้นดังแสดงในรูปด้านล่าง:
เอกสารที่สร้างขึ้นจะถูกเก็บไว้ในโฟลเดอร์ที่ระบุในไดเรกทอรีรากของคลังสินค้าเป้าหมาย การแสดงผลของเอกสารที่สร้างขึ้นดังแสดงด้านล่าง:
เราใช้รุ่นเริ่มต้น GPT-3.5-turbo เพื่อสร้างเอกสารสำหรับโครงการ Xagent ซึ่งประกอบด้วยรหัสประมาณ 270,000 บรรทัด คุณสามารถดูผลลัพธ์ของรุ่นนี้ในไดเรกทอรี markdown_docs ของโครงการ Xagent บน GitHub สำหรับคุณภาพเอกสารที่ปรับปรุงแล้วเราขอแนะนำให้พิจารณารุ่นขั้นสูงเช่น GPT-4-1106 หรือ GPT-4-0125-PREVIEW
ในท้ายที่สุดคุณสามารถปรับรูปแบบเอาต์พุตเทมเพลตและด้านอื่น ๆ ของเอกสารได้อย่างยืดหยุ่นได้อย่างยืดหยุ่นโดยปรับแต่งพรอมต์ เรารู้สึกตื่นเต้นเกี่ยวกับการสำรวจวิธีการทางวิทยาศาสตร์ที่มากขึ้นในการเขียนทางเทคนิคอัตโนมัติและการมีส่วนร่วมของคุณต่อชุมชน
เราแนวคิด การแชทกับ Repo เป็นเกตเวย์แบบครบวงจรสำหรับแอปพลิเคชันปลายน้ำเหล่านี้ทำหน้าที่เป็นตัวเชื่อมต่อที่เชื่อมโยง repoagent กับผู้ใช้มนุษย์และตัวแทน AI อื่น ๆ การวิจัยในอนาคตของเราจะมุ่งเน้นไปที่การปรับอินเทอร์เฟซกับแอปพลิเคชันดาวน์สตรีมที่หลากหลายและปรับแต่งเพื่อให้ตรงตามลักษณะที่เป็นเอกลักษณ์และข้อกำหนดการใช้งาน
ที่นี่เราแสดงให้เห็นถึงต้นแบบเบื้องต้นของหนึ่งในงานดาวน์สตรีมของเรา: คำถามและคำตอบอัตโนมัติสำหรับปัญหาและคำอธิบายรหัส คุณสามารถเริ่มต้นเซิร์ฟเวอร์โดยเรียกใช้รหัสต่อไปนี้
pip install repoagent[chat-with-repo]
repoagent chat-with-repoนี่คือกรณีที่โดดเด่นที่ได้นำ repoagent มาใช้
@misc { luo2024repoagent ,
title = { RepoAgent: An LLM-Powered Open-Source Framework for Repository-level Code Documentation Generation } ,
author = { Qinyu Luo and Yining Ye and Shihao Liang and Zhong Zhang and Yujia Qin and Yaxi Lu and Yesai Wu and Xin Cong and Yankai Lin and Yingli Zhang and Xiaoyin Che and Zhiyuan Liu and Maosong Sun } ,
year = { 2024 } ,
eprint = { 2402.16667 } ,
archivePrefix = { arXiv } ,
primaryClass = { cs.CL }
}