跳到主要内容

SRead Chrome Extension Released!

· 阅读需 3 分钟
马老师 Marvin
软件工程师 & 开源爱好者

Introduction to SRead

SRead is a smart reading assistant, whether you enjoy reading articles or viewing electronic papers, you can utilize SRead for assisted reading. SRead supports intelligent summarization, capable of extracting key information from the reading material and summarizing it; additionally, it can perform intelligent Q&A, answering any relevant information within the article. Moreover, SRead's mind map feature can help readers quickly grasp the outline of the entire piece.

Chrome Extension

The new Chrome extension of SRead brings a major upgrade to the browser reading experience. Once this extension is installed, users can directly enjoy all the features of SRead on Chrome browser without the need to download any additional applications. This extension includes a simplified toolbar, making it easy for users to quickly access the intelligent summarization, intelligent Q&A, and mind-mapping features while reading. Another important feature of this extension is that it can automatically recognize web page content, providing real-time intelligent assistance to users, making the reading experience smoother and more efficient.

Installation and Usage

Installing the SRead Chrome extension is very straightforward. Users first need to log on to the SRead website (https://sread.ai), and register/login with Gmail or WeChat. Then visit the Chrome Web Store, search for "SRead", and click the "Add to Chrome" button. Once the installation is complete, the SRead icon will appear on the toolbar, clicking the icon activates the extension and users can start using it.

Chrome Web Store

实战 AI: Langchain 库中的 OpenAI 函数调用 API

· 阅读需 4 分钟
马老师 Marvin
软件工程师 & 开源爱好者

引言

在探索人工智能领域时,我们常常需要利用现有的 API 来实现特定的功能。近日,在研究 Langchain 库时,我发现了一个很有趣的功能:利用 OpenAI 的函数调用 API 在一个链中执行特定操作。这不仅展示了如何从 ChatOpenAI 获取结构化输出,还展示了如何创建和执行函数链。这个功能为我们提供了一种新的可能性,使得在一个链中执行多个函数成为可能。通过这种方式,我们能够根据特定的输入,获得 **结构化 **的输出,从而为后续的操作提供更 准确的数据。

LangChain OpenAI 函数

首先,我们需要了解如何从 ChatOpenAI 获取结构化的输出。在 Langchain 库中,有一个 create_structured_output_chain 函数,它可以接受一个 Pydantic 类或 JsonSchema 作为结构化输出的格式。通过这种方式,我们可以强制模型返回特定结构的输出,从而方便后续的处理。

例如,我们可以创建一个 Person 类,用于描述一个人的基本信息:

from langchain.pydantic_v1 import BaseModel, Field   

实战 AI:使用Langchain构建高效的知识问答系统

· 阅读需 3 分钟
马老师 Marvin
软件工程师 & 开源爱好者

引言

知识问答系统(KQA)是自然语言处理领域的核心技术之一,它能够帮助用户从大量数据中快速准确地检索到所需信息。知识问答系统成为了帮助个人和企业快速获取、筛选和处理信息的重要工具。它们在很多领域都发挥着重要作用,例如在线客服、智能助手、数据分析和决策支持等。

Langchain不仅提供了构建基本问答系统的必要模块,还支持更为复杂和高级的问答场景。例如,它可以处理结构化数据和代码,使得我们能够针对数据库或代码库进行问答。这极大地扩展了知识问答系统的应用范围,使其能够适应更多复杂的实际需求。本篇文章将通过一个简单的实战例子,介绍如何使用Langchain构建基本的知识问答系统。

flow.jpeg

实战

下面,我们将通过实战例子手把手介绍如何使用Langchain搭建知识问答系统。

1. 文档加载和预处理

构建知识问答系统的第一步是加载和预处理文档。Langchain提供了WebBaseLoader模块,可以帮助我们轻松加载文档:

探索Crawlab:您的企业级爬虫管理新选择

· 阅读需 3 分钟
马老师 Marvin
软件工程师 & 开源爱好者

引言

在现代的数据驱动时代,获取和管理网上信息变得至关重要。为企业和开发者提供强大支持的,Crawlab出现了,它是一个企业级的爬虫管理平台,特点是开箱即用。无论您的团队规模大小,Crawlab都能为您提供专业和高效的爬虫管理解决方案。

核心功能

Crawlab的核心功能包括分布式系统管理、爬虫任务管理和调度、文件编辑、消息通知、依赖管理、Git集成以及性能监控等多方面。其中,它的分布式节点管理让爬虫程序能够在多台服务器上高效运行。再也不用担心手动上传、监控和部署的麻烦,Crawlab将这一切全部自动化,确保您能轻松调度爬虫任务,并实时查看爬虫程序的运行状态以及任务日志。

爬虫列表

特色亮点

特别值得一提的是,Crawlab提供在线编辑爬虫代码的功能,支持主流编程语言高亮显示,让您轻松调试爬虫程序。此外,它还提供了Crontab风格的定时任务设置,让您能在指定时间自动执行爬虫任务,极大提高了工作效率。

代码编辑

释放你的阅读潜能:用思阅(SRead)开启全新的智能阅读体验

· 阅读需 3 分钟
马老师 Marvin
软件工程师 & 开源爱好者

“阅读是心灵的冒险,知识是灵魂的燃料。”

在信息爆炸的今天,阅读成了我们每个人不可或缺的一部分。然而,传统的阅读方式常常让我们陷入信息的海洋,难以分辨哪些是真正有用的知识。在这样的背景下,思阅(SRead)应运而生。

思阅

什么是思阅(SRead)?

思阅是一款基于人工智能(AI)的阅读助手,专门为提升你的阅读体验而设计。它不仅仅是一个电子书阅读器,更是你的个人阅读顾问和助手。

智能问答:随时解疑

不再需要在阅读中断的情况下去网上搜索或查阅其他资料,思阅的智能问答功能能够即时为你解答与文章内容或主题相关的任何问题。

浅谈生成式 AI 技术:检索增强生成 RAG

· 阅读需 4 分钟
马老师 Marvin
软件工程师 & 开源爱好者

引言

如今,生成式 AI (Generative AI)的应用雨后春笋的涌现出来,让人应接不暇。而大型语言模型(LLM,Large Language Model),随着 ChatGPT 的发布而变得异常火热,是生成式 AI 应用的一个典型。但是,LLM 存在缺陷。其中一个比较大的问题在于 **幻觉(Hallucination) **:对于不熟悉的问题,LLM 会瞎编乱造,编造出看似专业却没有任何事实依据的答案。而为了解决这个问题,很多基于 AI 的知识问答系统采用了 **检索增强生成(RAG)**技术,从而让 LLM 能够做出基于事实的回答,从而消除幻觉。本篇文章将简单介绍 RAG 是如何在知识问答系统中发挥作用的。

LLM

要理解 RAG,我们首先需要简单理解一下 LLM。其实,LLM 在大量的参数训练下,已经可以完成很多难以置信的 NLP 任务,例如问答、写作、翻译、代码理解等等。但是,由于 LLM 的“记忆”停留在预训练时刻,肯定会存在它不知道的知识和问题。例如,OpenAI 开发的 ChatGPT 就不能回答 2021 年 9 月之后的问题。此外,由于幻觉的存在,LLM 会显得很有想象力且缺乏事实依据。因此,我们可以将 LLM 比做一个知识渊博且全能的智者,可以干很多事情,但却失忆了,记忆只停留在某一时间之前,而且不能形成新的记忆

而为了让这个智者能够在现代试题考试中得到高分,我们该怎么做呢?答案就是 RAG。

实战数据科学: 如何利用 sklearn 轻松上榜 Kaggle 入门 NLP 竞赛

· 阅读需 7 分钟
马老师 Marvin
软件工程师 & 开源爱好者

引子

Kaggle 是一个面向数据科学家、机器学习工程师和数据分析师的在线社区和数据科学竞赛平台,上面有很多带有奖励的数据科学竞赛(Competition)以及数据集(Dataset)。Kaggle 社区在数据科学领域非常出名,很多互联网业界大厂也在上面发布有奖竞赛,竞赛金额从几万到百万美元不等。本文介绍的是最近参与的 Kaggle 一个入门 NLP 竞赛,没有现金奖励,但可以学习到 NLP 相关的机器学习知识。

Kaggle Competition

竞赛简介

这个数据科学竞赛是希望竞赛参与者通过给定 Twitter 上的一条推文(Tweet),来判断推文是否是关于一场真实的灾害(Disaster)。下图是某一条推文的情况,推文中有 "ABLAZE"(燃烧的)关键词,预示着该推文是说有房子燃起来了。

Disater Tweet

实战数据分析: 开源的自动化数据探索神器 Rath

· 阅读需 5 分钟
马老师 Marvin
软件工程师 & 开源爱好者

引子

探索性数据分析(Exploratory Data Analysis,EDA)是数据分析师或数据科学家面对数据集(Dataset)时经常需要完成的任务。利用 Pandas、Seaborn 之类的 Python 工具可以很轻松的完成单变量分析(Univariate Analysis)、双变量分析(Bi-variate Analysis)、多变量分析(Multi-variate Analysis),但使用这些它们做数据探索不仅有一定技术门槛,而且还需要人工编写脚本来进行数据操作和分析。本篇文章将介绍一个非常酷的自动化数据探索开源工具 Rath,可以自动化的完成 EDA,成为数据分析界的 Autopilot 或 Copilot。

Rath

安装 Rath

由于 Rath 还在高速迭代中,文档也不是很齐全,要较快的体验只能到官网提供的演示网址

不过,如果会一些前端技术的话,还是可以本地安装,只是步骤稍微繁琐一些。

在开始之前,保证你安装了 Node.js 16 以及 Yarn。

实战爬虫:如何利用 Webspot 实现自动提取列表页

· 阅读需 6 分钟
马老师 Marvin
软件工程师 & 开源爱好者

引子

利用爬虫程序抓取列表页是网络数据提取中非常常见的任务之一。对于爬虫工程师来说,如何高效的生成提取规则是非常有必要的,否则就会浪费很多时间在编写爬虫程序 CSS 选择器或 XPath。本文将用一个实际例子来展示如何使用开源工具 Webspot 来实现自动提取列表页。

Webspot

Webspot 是一个旨在自动化网页数据提取的开源项目,目前支持列表页及分页的识别和抓取规则提取,此外还提供了 Web UI 界面让用户可以可视化的查看识别出来的结果,还可以让开发人员利用 API 获取识别结果。

Webspot 安装非常简单,可以参考官方文档中的安装教程,利用 Docker 和 Docker Compose 进行安装。

# clone git repo
git clone https://github.com/crawlab-team/webspot

# start docker containers
docker-compose up -d

浅谈算法:关于智能爬虫的探索

· 阅读需 8 分钟
马老师 Marvin
软件工程师 & 开源爱好者

浅谈算法:关于智能爬虫的探索

引子

如果当初让我去问顾客他们想要什么,他们肯定会告诉我:“一匹更快的马。” -- 亨利·福特

如今是人工智能大红大紫的时代,不管是 ChatGPT 还是随之而来的各种智能应用,让许多人看到即将到来的在几年前几乎不可想象的科幻世界。不过,在爬虫领域,人工智能似乎还没有过多涉及。诚然,爬虫作为一项“古老”的技术,在过去 20 多年缔造了搜索引擎、新闻聚合、数据分析等多而又多的技术行业,不过在如今还暂时没有看到明显的技术突破:爬虫工程师还是主要依赖于 XPath、逆向等技术来自动获取网络数据。不过,随着人工智能和机器学习的发展,爬虫技术理论上也可以做到“自动驾驶”。本篇文章,将从多个维度介绍所谓智能爬虫(智能化、自动化数据提取爬虫技术)的现状以及可能的未来发展方向。

爬虫技术现状

爬虫程序是一种自动化的程序,用于从互联网或其他计算机网络上获取数据。它们通常使用自动化数据抓取技术来自动访问网站,并收集、解析和存储网站上的信息。这些信息可以是结构化或非结构化数据。

传统意义上的爬虫技术主要包括以下模块或系统:

  1. 网络请求:对网站或网页发起 HTTP 请求,获取 HTML 等数据;
  2. 网页解析:对 HTML 进行解析,形成结构化的树形结构,并通过 XPath 或 CSS Selector 获取目标数据;
  3. 数据储存:将解析后的结构化数据进行存储,可以是数据库,也可以是文件形式;
  4. URL 管理:负责管理待抓取的URL列表和已经抓取的URL列表,例如分页或列表页的 URL 解析和请求。

爬虫系统 (3)

以上都是基础的爬虫技术模块,对于大型爬虫系统来说,还需要具备任务调度、错误管理、日志管理等生产环境必要模块。笔者的爬虫管理平台 Crawlab 就是用于企业级生产环境爬虫管理平台。另外,针对一些反爬措施,例如验证码或 IP 封锁,通常还需要额外模块,例如验证码识别、IP 代理等。

然而,目前爬虫程序的开发主要集中在网页解析上,这也是非常消耗人力的地方。虽然 HTML 需要解析网页数据,但是不同网站的网页布局、排版、风格、内容各不相同,导致每个网站、网页都需要单独编写解析逻辑,从而大大增加了人工编写成本。虽然一些通用爬虫例如搜索引擎爬虫可以不用编写过多解析逻辑,但这样的爬虫通常都无法聚焦于某些特定的主题数据提取。因此,为了降低人工编写成本,最好是不需要编写或少量编写解析逻辑就可以自动提取网页数据,这也就是智能爬虫的主要目标。