GithubSearchTool
도구를 계속 개선 중이므로 예상치 못한 동작이나 변경 사항이 발생할 수 있습니다.
GithubSearchTool은 GitHub 저장소 내에서 의미 기반 검색을 수행하도록 특별히 설계된 RAG(Retrieval-Augmented Generation) 도구이다. 이 도구는 고급 의미 검색 기능을 활용해 코드, 풀 리퀘스트, 이슈, 저장소를 탐색한다. 따라서 개발자, 연구자, GitHub에서 정확한 정보를 필요로 하는 모든 이에게 필수적인 도구로 자리 잡고 있다.
GithubSearchTool을 사용하려면 먼저 Python 환경에 crewai_tools 패키지가 설치되어 있는지 확인한다:
pip install 'crewai[tools]'
이 명령어는 GithubSearchTool을 실행하는 데 필요한 패키지와 crewai_tools 패키지에 포함된 다른 도구들을 함께 설치한다.
GithubSearchTool을 사용해 GitHub 리포지토리 내에서 의미론적 검색을 수행하는 방법은 다음과 같다:
from crewai_tools import GithubSearchTool
# 특정 GitHub 리포지토리 내에서 의미론적 검색을 위해 도구 초기화
tool = GithubSearchTool(
github_repo='https://github.com/example/repo',
gh_token='your_github_personal_access_token',
content_types=['code', 'issue'] # 옵션: code, repo, pr, issue
)
# 또는
# 실행 중에 알게 된 모든 리포지토리를 검색할 수 있도록 도구 초기화
tool = GithubSearchTool(
gh_token='your_github_personal_access_token',
content_types=['code', 'issue'] # 옵션: code, repo, pr, issue
)
github_repo: 검색을 수행할 GitHub 저장소의 URL. 필수 필드이며, 검색 대상 저장소를 지정한다.
gh_token: 인증에 필요한 GitHub Personal Access Token (PAT). GitHub 계정 설정에서 Developer Settings > Personal Access Tokens에서 생성할 수 있다.
content_types: 검색에 포함할 콘텐츠 타입을 지정한다. 다음 옵션 중에서 리스트 형태로 제공해야 한다: 코드 내 검색을 위한 code, 저장소 일반 정보 검색을 위한 repo, 풀 리퀘스트 검색을 위한 pr, 이슈 검색을 위한 issue. 이 필드는 필수이며, GitHub 저장소 내 특정 콘텐츠 타입에 맞춰 검색을 조정할 수 있다.
커스텀 모델과 임베딩
기본적으로 이 도구는 임베딩과 요약 모두에 OpenAI를 사용한다. 모델을 커스터마이징하려면 다음과 같이 설정 딕셔너리를 활용할 수 있다:
tool = GithubSearchTool(
config=dict(
llm=dict(
provider="ollama", # 또는 google, openai, anthropic, llama2, ...
config=dict(
model="llama2",
# temperature=0.5,
# top_p=1,
# stream=true,
),
),
embedder=dict(
provider="google", # 또는 openai, ollama, ...
config=dict(
model="models/embedding-001",
task_type="retrieval_document",
# title="Embeddings",
),
),
)
)