이 프로그램은 특정 키워드에 대해 Markdown 파일로 "멋진 목록"을 자동으로 생성하는 Python 프로그램입니다. "멋진 목록"은 특정 주제와 관련된 리소스 목록입니다. 현재 리소스에는 GitHub 프로젝트, Google Scholar 기사, YouTube 비디오, 코스, 슬라이드 및 프레젠테이션, 소프트웨어 및 도구 및 팟 캐스트가 포함됩니다. 멋진 목록은 GPT 모델을 사용하여 자동으로 생성됩니다. GPT 3.5 또는 GPT 4와 같은 목록을 생성하기 위해 다른 모델 중에서 선택할 수 있습니다.
poetry install OPENAI_API_KEY=<your_openai_api_key>
Google 계정.
Google Cloud 콘솔을 방문하십시오.
아직 오른쪽 상단 코너에서 "프로젝트 선택"드롭 다운을 클릭하여 새 프로젝트를 만들면 "새 프로젝트"를 클릭하십시오.
프로젝트가 생성되고 선택되면 내비게이션 메뉴 (왼쪽 상단 코너의 3 개의 수평선)로 이동 한 다음 "APIS & Services"> "Credentials"를 클릭하십시오.
"자격 증명 만들기"버튼을 클릭하고 "API 키"를 선택하십시오. 일단 생성되면 API 키가 표시됩니다.
API 키를 복사하여 안전하게 저장하십시오. 응용 프로그램 에서이 키를 사용하여 요청을 인증합니다.
Google Custom Search 홈페이지로 이동하십시오.
"사용자 정의 검색 엔진 만들기"를 클릭하십시오.
"검색 사이트"섹션에서 검색하려는 웹 사이트를 지정하거나 "전체 웹 검색"을 선택하여 더 넓은 검색 기능을 허용 할 수 있습니다. 그러나 "전체 웹 검색"을 선택하면 "검색 사이트"섹션에서 "검색 한 사이트 만 포함 된 사이트"를 전환해야합니다.
검색 엔진 이름과 같은 다른 필수 필드를 채우십시오.
하단의 "Create"버튼을 클릭하십시오.
검색 엔진이 생성되면 설정 페이지로 향합니다. 여기에서 "검색 엔진 ID"(일부 컨텍스트에서 "CX"라고도 함)를 찾아 복사하십시오. 응용 프로그램 에서이 ID를 사용하여 쿼리에 사용할 사용자 지정 검색 엔진을 지정합니다.
마지막으로 다음 환경 변수를 .env 파일에 추가하십시오.
GOOGLE_CLOUD_API_KEY='<google cloud api key>'
CUSTOM_SEARCH_ENGINE_ID='<custom search engine id>'
이 응용 프로그램을 실행하기위한 간단한 인터페이스를 제공했습니다. 그것을 사용하려면 :
시를 사용하여 유선 응용 프로그램을 실행하십시오.
poetry run streamlit run streamlit_run.py http://localhost:8501 엽니 다
UI를 통해 필요한 매개 변수 (예 : 모델 유형, 키워드 및 설명)를 쉽게 입력하고 멋진 목록을 생성 할 수 있습니다!
이 프로젝트에 사용 된 주요 클래스는 AwesomeListGenerator 입니다. 이 클래스는 다음 매개 변수를 수락합니다.
keyword : 멋진 목록이 생성 될 키워드를 나타내는 문자열.description : 키워드와 관련된 설명을 제공하는 문자열.model : 마크 다운을 생성하는 데 사용될 OpenAI 모델을 나타내는 문자열 (기본값은 "GPT-3.5-Turbo-16K").data_extraction_batch_size : 각 배치에서 처리 할 데이터 항목 수를 나타내는 정수 (기본값은 10). 예를 들어, 배치 크기가 10 인 경우 데이터 소스에서 데이터 소스에서 10 개의 배치 (한 번에 10 개의 GitHub 프로젝트)로 가져옵니다.number_of_results : 각 데이터 소스에서 가져올 결과 수를 나타내는 정수 (기본값은 20). 각 데이터 소스에서 가져올 결과 수는 20입니다. 예를 들어, 20 개의 GitHub 프로젝트를 가져온 다음 Data_Extraction_batch_size를 기반으로 한 배치로 LLM 모델로 처리하십시오. 이러한 매개 변수로 클래스를 초기화 한 후 save_and_return_awesome_list 메소드를 호출하여 MarkDown 파일을 생성하십시오. 예는 다음과 같습니다.
# Initialize an instance of the AwesomeListGenerator
generator = AwesomeListGenerator ( keyword = "Your Keyword" ,
description = "Your Description" ,
model = "gpt-3.5-turbo-16k" ,
data_extraction_batch_size = 10 ,
number_of_results = 20 )
# Generate and save the markdown
markdown_content = generator . save_and_return_awesome_list () 이 프로그램은 키워드 (예 : Your_Keyword.md )의 이름을 따서 명명 된 output 디렉토리에서 Markdown 파일을 생성합니다. 이 파일에는 프로그램에서 생성 된 "멋진 목록"이 포함되어 있습니다.
AwesomeListGenerator 프로그램은 데이터 스크래핑 및 데이터 처리의 두 가지 주요 단계에서 작동합니다.
데이터 스크래핑 단계 에서이 프로그램은 여러 데이터 소스의 제공된 키워드와 관련된 리소스를 가져옵니다. 현재 리소스에는 GitHub 리포지토리, Google Scholar 기사, YouTube 비디오 및 팟 캐스트가 포함됩니다. 이 프로그램은 각 소스에 대한 특수 스크레이퍼를 활용하며, 각 소스는 가장 관련성이 높고 최고 품질의 리소스를 가져 오도록 설계되었습니다.
예를 들어, Github 스크레이퍼는 별의 수 (저장소의 관련성 및 품질의 공통 지표)로 정렬 된 키워드와 일치하는 저장소를 가져옵니다. 마찬가지로 Google Scholar Scraper는 키워드와 관련된 기사를 검색하고 인용 수에 따라 정렬합니다.
데이터가 긁히면 데이터 처리 단계로 전달됩니다. 이 단계 에서이 프로그램은 선택한 GPT 모델을 사용하여 페치 된 리소스를 처리합니다. 모델은 키워드, 컨텐츠 품질 및 사용자와의 잠재적 유용성과 관련된 자원을 필터링하고 순위를 매 깁니다. GPT 모델은 또한 데이터를 Markdown 목록으로 형식화하여 링크 및 간단한 설명과 같은 필요한 형식을 추가합니다.
특히, 스크래핑 및 처리 작업은 배치로 실행됩니다. 이 배치 작업을 통해 구성된 number_of_results 및 data_extraction_batch_size 기반으로 프로그램이 필요에 따라 많은 결과를 지원할 수 있습니다. 이렇게하면 한 번에 처리되는 데이터의 범위를 제어하여 효율적인 리소스 사용을 보장합니다.
우리는 향후 데이터 소스 수를 확장하려고합니다. 우리가 염두에두고있는 아이디어는 다음과 같습니다.
기고에 관심이 있다면 위의 작업 중 하나를 선택하거나 자신의 아이디어를 제안 할 수 있습니다. 우리는 모든 종류의 기여를 환영하며 프로젝트에 대한 관심을 감사합니다!
우리는 커뮤니티가 만드는 놀라운 멋진 목록을 보는 것을 좋아합니다. 우리의 도구를 사용하여 멋진 목록을 생성한다면, 우리에게 알려 주시면 여기에 프로젝트가 있습니다!
이 프로젝트가 유용하다고 생각 했습니까? 그것이 당신에게 가치를 가져왔다면, 우리에게 github를주세요. 이 제스처는 우리의 노력을 검증 할뿐만 아니라이 프로젝트가 더 많은 사람들에게 도달하고 개발을 계속하는 데 도움이됩니다.
리포지토리를 자유롭게 포크하거나 풀 요청을 제출하여 기여하거나 문제를여십시오. 귀하의 의견과 기여는 항상 환영합니다!