作者:Shaw Talebi
The 排名第一的错误初学者在思考项目想法时的一个常见错误是从问题开始。如何使用这项新技术?虽然这是一种学习新工具的好方法,但有更好的方式。
好的项目想法始于一个问题,我能够解决什么问题?这不仅在与潜在雇主分享时是一个很好的故事,而且解决问题就是你提升自己的方式。将技术技能转化为价值.
以下所有项目都采用了这种以问题为导向的方法。你可以直接实施这些想法,或者(更好的是)将它们作为解决你个人面临的问题的灵感来源。
找工作的过程中一个有效但耗时的部分是根据不同的职位描述调整你的简历。虽然几年前自动化这项任务会是一个高级项目,但在今天的大规模语言模型的帮助下,这变得简单得就像……API调用.
这里是一步步实现此类自动化的分解说明。
虽然我们可以轻松地使用ChatGPT来完成这个任务,但用Python实现的好处是可以轻松扩展该过程。这里是步骤3的一些初始代码。
导入openai
openai.api_key = "你的sk"# 提示(假设md_resume和job_description已经定义)
提示 = f""""
我有一份用Markdown格式编写的简历和一份工作描述。
请根据职位要求调整我的简历以更好地与岗位需求对齐的同时 \
保持专业语气。根据我的技能、经验和 \
成就突出与职位最相关的要点。
确保我的简历仍然反映了我的独特资格和优势
但强调与职位描述相匹配的技能和经验。
这是我的简历,用Markdown编写:
{md_resume}
### 以下是职位描述:
{工作描述}
请修改简历为:
使用职位描述中的关键词和短语。
调整每个角色下的项目符号,以强调相关的技能和成就。
确保我的经历以符合要求资质的方式呈现。
保持清晰、简洁和专业。
返回更新后的简历(格式为Markdown)。
"""
# 发起 API 请求
response = 开放AI聊天完成创建(
model="gpt-4o-mini",
消息列表=[
{"role": "system", "content": "你是一个乐于助人的助手。”}
{"role": "用户", "content": 提示}
],
温度 = 0.25
)
# 提取响应
简历 = 响应.choices[0].message.content
注意:ChatGPT对于编写此类简短的代码片段(和提示)非常有帮助。如果遇到困难,可以在第4步尝试使用它。
虽然我喜欢将技术讲座添加到我的YouTube“稍后观看”播放列表中,但我可能要过一段时间才会去看它们(如果我有时间的话 😅)。一个可以帮助解决这个问题的项目是一个能够为我观看视频并生成简洁摘要和关键点的工具。
这里有一种方法可以做到这一点:
图书馆: 开放人工智能(OpenAI), YouTube字幕API
从技术角度来看,这与第一个项目非常相似。然而,一个关键的区别是,我们需要自动提取视频字幕,并将其输入到大语言模型中。
这里有一些启动代码。
导入 re 模块
从youtube_transcript_api导入YouTubeTranscriptApiyoutube_url = "视频链接在这里"
使用正则表达式提取视频ID
video_id_regex = r'(?:v=|\/)([0-9A-Za-z_-]{11}).*'
match = re.search(video_id_regex, youtube_url)
如果匹配:
返回 match.group(1)
否则:
返回None
提取字幕
text_list = [ transcript[i]['文本'] for i in range(len(transcript)) ]
transcript_text = '\n'.join(text_list)
我的稍后观看播放列表并不是我囤积技术信息的唯一地方。另一个存储信息的地方是我的桌面,上面有(118)篇研究论文。由于手动查阅这些论文会非常耗时,让我们看看人工智能能提供什么帮助。
可以创建一个工具,分析我桌面上每个PDF的内容,并根据主题将其分类整理到不同的文件夹中。文本嵌入Vectors可以将每篇论文转换为密集的向量表示,然后使用传统的机器学习算法(如KMeans)对相似的文章进行聚类。
以下是更详细的分解:
图书馆: PyMuPDF, 句子变换器, 熊猫, sklearn
该项目的关键步骤是生成文本嵌入这里是一个使用sentence_transformers进行该操作的代码片段。
从sentence_transformers导入SentenceTransformer# 加载嵌入模型
模型 = SentenceTransformer("all-MiniLM-L6-v2")
将摘要存储在列表中
abstract_list = ["摘要 1", "摘要 2"]
计算嵌入向量
embeddings = model.encode(摘要列表)
几个月前,我帮助一家公司创建了一个基本的RAG(检索增强生成)一个技术报告集的系统。搜索此类报告的一个挑战是关键信息往往以图表而非文字.
将这种视觉信息融入搜索过程的一种方法是使用一个多模态嵌入模型到表示文本和图像的共享空间.
这里是一个基本的分解:
图书馆: PyMuPDF, 转换器, pandas, sklearn
该项目最重要的部分是如何对PDF进行分块。最简单的方法是使用固定字符数并让各个块之间有一些重叠。同时,为每个块捕获元数据(如文件名和页码)也很有帮助。
这里有一些基本的样板代码来完成这个任务(由ChatGPT提供)。如果你遇到困难,试着让它提取图片。
导入 fitz # PyMuPDFdef 提取文本块(pdf路径, 块大小, 重叠大小):
打开PDF文件
pdf_document = fitz.open(pdf_path)
chunks = []
# 遍历PDF中的每一页
对于页码page_num在pdf_document长度范围内的遍历:
页面 = pdf文档[页码]
page_text = page.get_text()
将当前页面的文本拆分成具有重叠的部分
start = 0
while start < len(page_text):
end = start + chunk_size
chunk = page_text[start:end]
# 将页码与块一起存储
chunks.append((页码 + 1, 块))
# 移动到具有重叠的下一个块
start += chunk_size - overlap_size
返回chunks
# 提取参数
pdf_path = "你的文件.pdf"
chunk_size = 1000 # 每个文本块的字符数大小
overlap_size = 200 # 字符重叠大小
text_chunks = extract_text_chunks_with_page_numbers(pdf_path, chunk_size, overlap_size)
显示带有页码的块
对于 i, (页码, 块) 在枚举(text_chunks):
打印(f"块 {i + 1}(页面 {page_number}):\n{ chunk }\n{'-' * 50}")
在过去的一年里,我帮助近100家企业和个人建立了AI项目。其中,最多的是一项最常见的项目相关问题是一个文档问答系统。在之前的项目基础上,我们可以以一种简单直接的方式实现这一系统。
如果我们已经将文档切分成块并存储在DataFrame中,我们可以将多模态搜索工具转换为多模态RAG系统。
以下是步骤:
图书馆: PyMuPDF, 变换器, pandas, sklearn, 一起/开放人工智能(OpenAI), Gradio
注意:通过Together AI的API,Llama 3.2 Vision在2025年之前是免费的
这个项目本质上结合了项目2和项目4。然而,它包括了一个用户界面的必要组件。为此,我们可以使用一个仪表板工具如Gradio,哪一位允许我们用几行代码创建一个聊天界面.
这里是根据Gradio改编的一个示例代码片段:文档为了做到这一点。
导入gradio作为gr模块
导入时间模块定义生成响应函数(message,历史记录):
"""
你的生成响应的代码
"""
返回响应
demo = gr.ChatInterface(
fn=生成响应,
例子=[{"文本": "Hello", "文件": []}]
title="回声机器人"
multimodal=True)
demo.launch()
得益于像ChatGPT这样的工具和光标, 构建AI项目从未如此轻松过快速的几年前曾经让我困扰几个小时(甚至几天)的问题,现在可以用先进的编码助手在几分钟内解决了。
我的建议是利用这些工具来学得更快和大胆一点在你的项目选择中。对于项目,找出问题并将实施时间限制在一个周末内。
在评论区提出你的问题吧 :))