LangChain学习笔记:开发鲜花电商人脉工具的实践体会
今天学习了一个很有趣的项目 - 为鲜花电商开发一个人脉工具。这个项目让我对LangChain的实际应用有了更深的理解呢!
首先,我觉得项目的背景设定特别贴近实际。作为一个鲜花电商,想要通过微博大V来推广产品是很自然的想法。不过要找到合适的大V确实挺难的,需要考虑很多因素呢。这时候,AI就可以帮我们分担一些工作啦!
项目分为五个步骤,今天我们学习了前两步:找到合适的大V,以及爬取他们的资料。虽然看起来简单,但实际操作中还是遇到了不少挑战呢。
在第一步中,我们需要通过LangChain的搜索工具找到微博大V的UID。这里用到了SerpAPI,不过有意思的是,默认的SerpAPI并不能完全满足我们的需求。它返回的是网页摘要,而我们需要的是URL中的UID。
看到这个问题,我学到了一个很棒的解决方案 - 继承并重写SerpAPI的处理方法:
class CustomSerpAPIWrapper(SerpAPIWrapper):
@staticmethod
def _process_response(res: dict) -> str:
if "organic_results" in res.keys():
first_organic_result = res["organic_results"][0]
if "snippet" in first_organic_result.keys():
# 这里是关键修改,返回link而不是snippet
snippets.append(first_organic_result["link"])
这让我明白了,在实际项目中,我们经常需要对框架提供的工具进行定制化改造呢。不能完全依赖现成的工具,要根据实际需求灵活调整。
第二步是爬取大V的资料,这部分用到了requests库。有趣的是,为了让爬虫能够正常工作,我们需要使用cookie来模拟登录状态。这让我想到了很多网站的反爬虫机制,作为开发者要特别注意这些细节呢。
def scrape_weibo(url: str):
headers = {
"User-Agent": "Mozilla/5.0...",
"Referer": "https://weibo.com"
}
cookies = {
"cookie": '''你的cookie'''
}
response = requests.get(url, headers=headers, cookies=cookies)
time.sleep(3) # 要记得加延时哦,避免被反爬
return response.text
最后,我觉得特别巧妙的是使用remove_non_chinese_fields函数来清理爬取的数据。因为API返回的数据中包含了很多无关的信息,比如样式、颜色代码等。通过只保留包含中文的字段,我们可以大大减少后续处理的token数量,这样既节省成本,又提高了效率呢!
这个项目让我感受到,LangChain不仅仅是一个框架,更是一个能够帮助我们解决实际问题的工具集。通过合理组合各种组件,我们可以构建出很实用的应用。期待下次课程继续学习如何利用LLM生成吸引人的文案,这应该会很有意思呢!
总的来说,今天的学习让我明白了一个道理:在实际开发中,我们不仅要会用工具,更要懂得根据需求去改造工具。有时候多走一步,就能收获意想不到的效果呢!