Auto-Gpt는 OpenAI에서 GPT-4 또는 GPT-3.5 API를 활용하여 자연어로 표현 된 사용자 정의 목표를 달성하는 오픈 소스 AI 도구입니다. 주요 작업을 더 작은 구성 요소에 해부하고 주기적 프로세스에서 다양한 리소스를 자율적으로 활용함으로써이를 수행합니다.
이 안내서에서는 Autogpt의 다양한 기능을 살펴보고 코딩을 위해 Autogpt를 활용하기위한 모범 사례와 팁을 간략하게 설명합니다.
git clone https://github.com/significant-gravitas/auto-gpt.git 또는 리포지토리 페이지의 "코드"버튼을 클릭하고 ZIP 파일을 다운로드하여 리포를 복제 할 수 있습니다.autogpt --version 명령을 실행하여 설치가 성공했는지 확인하십시오. 터미널에 표시된 버전 번호가 표시됩니다.가상 환경을 사용하여 AutoGPT 설치를 포함하고 종속성을 설치하거나 AutoGPT를 실행할 때 오류가 발생하지 않도록 할 수 있습니다.
자신의 구성과 자신의 API 키로 '.env'를 업데이트하십시오. 파일에는 필요한 모든 API가 포함되어 있습니다. 이미지 생성과 같이 사용하지 않으면 일부를 흡입 할 수는 있지만 다음과 같이 확인하십시오.
OpenAI API 키 -이 키는 AutoGPT가 구축 된 OpenAI API를 사용해야합니다. OpenAI API 프로그램에 가입하여 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 데코레이터는 사용자 정의 명령을 정의하는 데 사용됩니다. 세 가지 논쟁이 필요합니다.
name : 명령의 이름.description : 명령에 대한 간단한 설명.params : 명령에 대한 예상 매개 변수를 나타내는 문자열. 다음은 @command 데코레이터를 사용하여 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 데코레이터와 함께 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 데코레이터를 사용하여 analyze_code 라는 사용자 정의 명령을 정의합니다. 이 함수는 분석 할 코드가 포함 된 문자열을 취하고 제안 목록을 반환합니다.
코드에 대한 간단한 설명은 다음과 같습니다.
@command 데코레이터로 analyze_code 함수를 정의하십시오. @ 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 데코레이터를 사용하여 improve_code 라는 사용자 정의 명령을 정의합니다. 이 기능은 제안 목록과 개선 될 코드를 포함하는 문자열을 가져오고 제안 된 개선 사항이 적용된 새 코드 문자열을 반환합니다.
코드에 대한 간단한 설명은 다음과 같습니다.
@command 데코레이터로 improve_code 함수를 정의하십시오. @ 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,
)
Debugging을 위해 improve_code 함수를 사용하면 아래 단계를 따라갈 수 있습니다.
코드의 문제 또는 버그를 식별하십시오. 이 작업을 수동으로 수행하거나 라이터, 정적 분석기 또는 디버거와 같은 도구를 사용하여 문제를 정확히 찾아 낼 수 있습니다.
식별 된 문제를 기반으로 제안 목록을 작성하십시오. 각 제안은 코드에서 특정 문제 또는 버그를 수정하는 방법을 설명해야합니다.
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 생성 된 개선 사항이 귀하의 제안과 일치하고 식별 된 문제를 올바르게 수정하십시오. 개선 된 코드가 예상대로 작동하는지 확인하십시오. - 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에 저장했는지 확인하십시오.
스크랩하려는 웹 사이트의 URL과 원하는 콘텐츠와 관련된 질문으로 browse_website 기능에 전화하십시오.
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에는 주어진 URL에서 컴퓨터의 로컬 디렉토리로 GIT 저장소를 복제 할 수있는 기능 clone_repository 가 있습니다. clone_repository 함수를 사용하여 입력 및 복제를 신속하게하려면 다음 단계를 따르십시오.
repo_url = "repository URL"
clone_path = "the path to clone the repository"clone_repository 함수를 호출하십시오. result = clone_repository ( repo_url , clone_path ) 이 코드는 clone_repository 함수를 호출하는데, 이는 Config 객체에서 제공된 GitHub 인증 자격 증명을 사용하여 저장소를 클론합니다.
AutoGpt를 사용하여 코드에 대한 설명적인 주석을 자동으로 생성하십시오. 이를 통해 특히 코드베이스에 익숙하지 않은 팀원에게 코드를보다 읽기 쉽고 이해하기 쉽게 이해할 수 있습니다.
AutoGpt를 사용하여 프로젝트에 대한 보일러 플레이트 코드를 생성하십시오. 예를 들어 AutoGpt를 사용하여 로깅 설정, 구성 파일 작성 또는 데이터베이스 초기화를위한 코드를 생성 할 수 있습니다.
AutoGpt를 사용하여 코드의 테스트 케이스를 생성하십시오. 이를 통해 코드가 예상대로 작동하고 코드에 대한 변경 사항에 새로운 버그가 발생하지 않도록하는 데 도움이됩니다.
AutoGpt를 사용하여 프로젝트에 대한 문서를 생성하십시오. AutoGPT는 API 문서, 사용자 가이드 및 기타 유형의 문서를 자동으로 생성하여 시간과 노력을 절약 할 수 있습니다.
Autogpt는 코딩 및 프롬프트 엔지니어링에 도움이되는 강력한 도구입니다. 코드 스 니펫을 생성하고, 코드 구문 확인, 코드 개선, 테스트 케이스 생성, 문서 생성 및 파이썬 파일을 실행할 수 있습니다. AutoGPT를 사용하면 시간을 절약하고 생산성을 높일 수 있습니다.