这是一个Python程序,它会自动为特定关键字作为降价文件生成一个“很棒的列表”。 “很棒的列表”是与特定主题相关的资源列表。目前,资源包括GitHub项目,Google Scholar文章,YouTube视频,课程,幻灯片和演示文稿,软件和工具以及播客。很棒的列表是使用GPT模型自动生成的;您可以在不同的模型之间进行选择以生成列表,例如GPT 3.5或GPT 4。
poetry install OPENAI_API_KEY=<your_openai_api_key>
一个Google帐户。
访问Google Cloud Console。
如果还没有,请单击右上角的“选择项目”下拉菜单来创建一个新项目,然后单击“新项目”。
创建和选择项目后,导航到导航菜单(左上角的三个水平线),然后单击“ APIS&Services”>“凭据”。
单击“创建凭据”按钮,然后选择“ API键”。创建后,将显示您的API键。
复制您的API键并安全保存。您将在应用程序中使用此键来验证您的请求。
转到Google自定义搜索主页。
单击“创建自定义搜索引擎”。
在“要搜索的站点”部分中,您可以指定要搜索或选择“搜索整个网络”的网站,以允许更广泛的搜索功能。但是,如果您选择“搜索整个网络”,请确保仅在“搜索站点”部分下关闭“搜索”搜索。
填写其他必需的字段,例如搜索引擎的名称。
单击底部的“创建”按钮。
创建搜索引擎后,您将被指向设置页面。在这里,查找并复制“搜索引擎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的批次获取(例如一次github项目)。number_of_results :一个代表从每个数据源获取结果数的整数(默认为20)。从每个数据源获取的结果数(默认为20)。例如,获取20个GitHub项目,然后根据data_extraction_batch_size用批处理使用LLM模型处理它们。使用这些参数初始化类后,调用save_and_return_awesome_list方法来生成标记文件。这是一个例子:
# 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模型还将数据格式化为降价列表,并添加了必要的格式,例如链接和简要说明。
值得注意的是,刮擦和处理操作均分批执行。此批处理操作允许该程序根据已配置的number_of_results和data_extraction_batch_size支持尽可能多的结果。这样,您可以控制一次处理数据的程度,以确保有效的资源使用情况。
我们希望将来扩大数据源的数量。这是我们想到的一些想法:
如果您有兴趣做出贡献,则可以选择上述任务之一或提出自己的想法。我们欢迎各种贡献,并感谢您对我们的项目的兴趣!
我们喜欢看到我们社区创造的令人难以置信的令人敬畏的列表。如果您使用我们的工具来生成一个很棒的列表,请随时通知我们,我们将在此处介绍您的项目!
您觉得这个项目有用吗?如果它给您带来了价值,请在github上给我们一个。这种手势不仅验证了我们的努力,还可以帮助该项目吸引更多的人并继续发展。
请随意分叉存储库,通过提交拉请请求或打开问题。总是欢迎您的反馈和贡献!