告别繁琐搜索!我用 Marscode 简单实现了一个定制 AI 新闻聚合工具
作为一个经常写代码的程序员,我深深体会到这个概念有多香。想想看,不用配环境、不用担心电脑配置,打开浏览器就能 coding,这不就是我们梦寐以求的开发体验吗?最爽的是,云端 IDE 让我的开发方式变得超级灵活。简直不要太香 - 地铁上掏出手机看看代码,午休时用平板改改 bug,回到家用电脑继续开发,所有代码状态都完美同步。再也不用担心"诶呀,那段代码是不是忘在公司电脑上了"这种问题。而且的特性简直
作为一个经常写代码的程序员,我深深体会到云端 IDE这个概念有多香。想想看,不用配环境、不用担心电脑配置,打开浏览器就能 coding,这不就是我们梦寐以求的开发体验吗?
最爽的是,云端 IDE 让我的开发方式变得超级灵活。全终端同步开发简直不要太香 - 地铁上掏出手机看看代码,午休时用平板改改 bug,回到家用电脑继续开发,所有代码状态都完美同步。再也不用担心"诶呀,那段代码是不是忘在公司电脑上了"这种问题。而且云端自动保存的特性简直是救命稻草,再也不用担心断电、系统崩溃导致代码丢失,更不用提硬盘损坏这种让程序员痛不欲生的惨剧了。
但是呢,免费的才是最贵的,这句话放在大多数云端 IDE 上都很适用。资源限制、功能阉割都是家常便饭。有时候正写得起劲,突然提示你配额用完了,这谁顶得住啊!而且代码存在云端,多少会有点担心安全问题。再加上网络不稳定的时候,那个卡顿真的是让人抓狂。
不过,Marscode 在众多云端 IDE 中却是个特例。说实话,它的免费版本性价比高得离谱。首先是性能够用,基本不会遇到明显的卡顿问题,它对免费用户的限制特别良心 - 日常开发基本无感知限制,这在云端 IDE 界简直是一股清流。
而且,Marscode 还解决了一个让后端开发者头疼的问题 - 服务部署和对外暴露。你知道的,很多后端开发者对运维操作都不太熟悉。以前写个 demo 给别人体验,还得折腾服务器、配置域名、搞定 SSL 证书…现在好了,Marscode 一键部署,直接生成可访问的公网地址,分分钟就能让其他人测试你的应用,这波操作属实是降低了全栈开发的门槛。
它的AI 驱动的编码体验也算中规中矩。作为一个代码助手,基本的功能比如代码补全、语法提示、简单重构这些都不落下,跟 GitHub Copilot 相比虽然智能程度还有差距,但日常开发也够用了。而且随着它背后的大模型能力不断提升,相信这些短板很快就能补上来。总的来说,能提升一定的开发效率,这就够了。
再看看它的一站式开发部署能力。比如我最近在做一个基于 gradio 框架的 UI 界面,在 Marscode 上开发特别顺手:
with gr.Blocks(title="我的信息收集工具") as iface:
with gr.Tab("机器之心 - AI 资讯收集"):
gr.Markdown("> 机器之心是一家专注AI领域的信息服务平台...")
model_type = gr.Radio(
["doubao"],
label="模型选择",
info="使用特定的模型进行总结"
)
# ... 其他UI组件配置 ...
这里用 gradio 最妙的地方在于,它可以让一个对前端一窍不通的后端开发者也能轻松搭建出实用的界面。几行 Python 代码就能实现一个完整的单体应用,不用碰 HTML、CSS、JavaScript 这些前端技术,简直就是全栈开发的平民解决方案。而且 Marscode 对 gradio 的支持特别到位,写完直接就能部署运行,完全不用操心环境问题。上述的代码是我等下要分享给大家的一个 MVP 项目,希望等下我讲解思路时候可以给大家一些启发。
当然,Marscode 也不是完美无缺。比如有时候代码提示会抽风,某些特殊场景的支持还不够完善。不过这些都是可以理解的,毕竟产品还在不断进化中。正所谓工具是拿来用的,不是拿来吹的。只要能帮我们提高效率,解决实际问题,那就是好工具!
个人思考:Marscode 更适合做定制化产品 MVP
说到为什么 Marscode 特别适合做 MVP(最小可行产品),我觉得得从两个维度来聊聊。
1. 从智能体 MVP 的角度看 - 以 Langchain 为例
说到 AI 应用开发,Langchain这个框架基本算是目前比较主流的了。它不仅提供了一整套构建 AI 应用的工具链,更重要的是它的模块化设计让我们能轻松地把大语言模型、向量数据库、各种工具串联起来,快速搭建智能应用。
在 Marscode 上使用 Langchain 开发,最大的好处是环境配置的简单性和云端资源的便利性。看看这段代码:
from langchain_core.tools import Tool
from langchain.agents import AgentExecutor, create_openai_functions_agent
from langchain_core.memory import ChatMessageHistory
from langchain_community.vectorstores import Chroma
from langchain_openai import OpenAIEmbeddings, ChatOpenAI
# 快速实现一个具备知识库和记忆功能的智能体
message_history = ChatMessageHistory()
llm = ChatOpenAI()
# 创建向量知识库
knowledge_base = Chroma.from_documents(
documents,
embedding=OpenAIEmbeddings()
)
tools = [
Tool(
name="Knowledge Base",
func=knowledge_base.similarity_search,
description="搜索知识库获取相关信息"
),
Tool(
name="News Analyzer",
func=analyze_news,
description="分析最新的AI新闻动态"
)
]
# 创建agent
agent = create_openai_functions_agent(llm, tools)
agent_executor = AgentExecutor(
agent=agent,
tools=tools,
memory=message_history,
verbose=True
)
几十行就实现了一个具备知识库和记忆功能的智能体。而且最爽的是, 基于 Marscode,我们还可以直接加持一些自带优点:
- 部署无需运维: 一键部署到公网,分分钟搞定演示环境,完全不用碰运维的活
- 云端资源随用随取: 可以直接利用云端 IDE 提供的计算资源来跑测试或者部署 MVP,不用担心本地机器性能不够
这种开箱即用的体验,让我们可以把更多精力放在业务逻辑的实现上,而不是被环境配置这些技术细节拖累。
说到这里,不得不提一个很多人忽略的羊毛 - 想想看,云端 IDE 本质上是什么?它其实相当于平台白给你一台性能不错的云服务器!而且是可以公网访问的那种!虽然可能是有超时机制,但是基本可以满足大部分的开发需求。
这意味着什么?你可以:
- 搭建一个临时的数据采集服务来验证想法
- 运行一些短期的自动化任务
- 搭建一个简单的 Web 应用 Demo 来展示概念
当然,这些都是在考虑超时限制的前提下。虽然不能完全替代正式的云服务器,但对于快速验证 MVP 来说已经足够了,要知道,一台同配置的云服务器,一个月的费用至少得小一两百了。
2. 从编码工具 MVP 的角度看 - 以 Marscode 本身为例
Marscode 本身就是一个很好的例子。它让我们看到,一个编码工具的 MVP 不需要面面俱到,抓住痛点直击要害才是关键。
它没有去堆砌花里胡哨的功能,而是把云端 IDE + AI 编码助手 + 一键部署这三个核心特性做到了极致,完美解决了程序员最关心的问题:
- 写代码要爽(AI 辅助编码)
- 部署要快(一键发布)
- 分享要易(公网可访问)
这种聚焦核心价值的产品思维,正是做好 MVP 的关键。它提醒我们,MVP 阶段最重要的不是功能有多全,而是能不能快速验证产品创意。
接下来,就让我用实际案例来展示如何用 Marscode 快速搭建一个 AI 新闻聚合器的 MVP。
基于 Marscode 的 AI 新闻聚合器 MVP 开发实战
既然说到实战,那就用一个真实的案例来展示如何利用 Marscode 快速开发 MVP。我们要做的是一个AI 新闻聚合器,它能自动采集一些科技媒体的新闻,然后用 AI 进行总结和分类,这次我就直接拿了一个国内比较出名的一个科技媒体 - 机器之心来演示给大家看看,用的是 feed 订阅抓取的方式,难度不大,但是可以很好的展示 Marscode 的开发体验。
项目架构设计
整个项目的架构其实很简单,项目主要分为三个模块:
- 数据采集模块 - 负责抓取新闻
- AI 处理模块 - 使用大模型处理新闻
- Web 展示模块 - 基于 gradio 构建界面
这里简单说说 langchain
和 gradio
是什么:
LangChain 是一个强大的 AI 应用开发框架,它提供了一系列工具来帮助开发者更容易地构建基于大语言模型的应用。它的主要特点包括:
- 提供统一的接口来调用各种大语言模型
- 支持记忆功能,可以保持对话上下文
- 内置多种提示词模板,方便构建复杂的 AI 交互
- 支持知识库集成,可以让 AI 基于特定领域知识来回答
Gradio 则是一个用于快速构建机器学习应用界面的 Python 库。它的优势在于:
- 只需几行代码就能创建漂亮的 Web 界面
- 支持多种输入输出类型(文本、图片、音频等)
- 内置分享功能,可以一键生成公开链接
- 完全基于 Python,对开发者非常友好
这两个工具的组合非常适合快速开发 AI 应用的 MVP。LangChain 负责 AI 能力的封装和调用,而 Gradio 则提供了简洁美观的用户界面,让我们可以专注于核心功能的实现。
核心代码实现
核心代码主要在这个部分:
# main.py
def generate_jixiezhixin_topic(model_type, model_name):
try:
# 获取当前时间
current_date = datetime.now().strftime('%Y-%m-%d')
current_hour = datetime.now().strftime('%H')
# 初始化客户端
ph_client = JiqizhixinClient()
# 获取内容
md_file_path = ph_client.export_articles(current_date, current_hour)
if not md_file_path or not os.path.exists(md_file_path):
LOG.error("无法获取内容或文件不存在")
return "无法获取内容,请稍后重试", None
# 读取文件内容并进行预处理
try:
with open(md_file_path, 'r', encoding='utf-8') as file:
content = file.read().strip()
if not content:
LOG.error("文件内容为空")
return "获取到的内容为空,请稍后重试", None
except Exception as e:
LOG.error(f"读取文件失败: {str(e)}")
return f"读取内容失败: {str(e)}", None
# 获取模型配置
try:
models = load_models_from_yaml()
if model_type not in models or model_name not in models[model_type]:
LOG.error(f"无效的模型配置: {model_type}/{model_name}")
return "无效的模型配置", None
model_id = models[model_type][model_name]['id']
except Exception as e:
LOG.error(f"获取模型配置失败: {str(e)}")
return f"获取模型配置失败: {str(e)}", None
# 构建更详细的 prompt
prompt = f"""请仔细阅读以下内容,并按照要求进行分析:
1. 产品分类分析:
- 按照产品类型进行分类(如 AI 工具、生产力工具、开发者工具等)
- 识别每个类别的主要特点和创新点
2. 市场趋势分析:
- 总结当前产品发展的主要趋势
- 分析这些趋势背后的技术和市场驱动因素
- 预测可能的发展方向
3. 重点产品推荐:
- 选择 3 个最值得关注的产品
- 分析每个产品的:
* 创新性和独特卖点
* 解决的具体问题
* 市场潜力
* 推荐理由
原始内容如下:
{content}
请以结构化的方式呈现分析结果,确保内容清晰易读。"""
# 调用 API 进行分析
try:
completion = client.chat.completions.create(
model=model_id,
messages=[
{
"role": "system",
"content": "你是一位专业的科技产品分析师和趋势研究专家,擅长发现创新产品和分析市场趋势。请用专业、客观的视角分析内容。"
},
{"role": "user", "content": prompt},
],
temperature=0.7, # 适当提高创造性
max_tokens=2000, # 确保有足够的长度
)
summary = completion.choices[0].message.content
except Exception as e:
LOG.error(f"API 调用失败: {str(e)}")
return f"内容分析失败: {str(e)}", None
# 生成结构化报告
report_content = f"""# 产品趋势分析报告
## 基本信息
- 生成时间:{current_date} {current_hour}:00
- 分析模型:{model_name}
## 分析报告
{summary}
## 原始数据
<details>
<summary>点击展开原始内容</summary>
{content}
</details>
---
*本报告由 AI 辅助生成,仅供参考*
"""
这段代码实现了一个generate_jixiezhixin_topic
函数,它的主要功能是:
- 构建详细的 prompt 来分析 AI 新闻
- 调用大模型 API 进行内容分析
- 生成结构化的分析报告
- Web 界面实现:
# main.py
with gr.Blocks(title="我的信息收集工具") as iface:
with gr.Tab("机器之心 - AI 资讯收集"):
gr.Markdown("> 机器之心是一家成立于2015年,位于北京的人工智能信息服务平台。它提供包括媒体、数据信息产品、研究和活动在内的多种服务,旨在帮助用户进行人工智能相关决策。该平台覆盖了人工智能前沿技术研究、技术解读、算法实现和行业应用等方面,并且拥有成熟的中英文内容生产分发体系")
model_type = gr.Radio(
["doubao"],
label="模型选择",
info="使用特定的模型进行总结",
value=DEFAULT_MODEL_TYPE
)
# 获取默认的模型选择器和模型ID
model_name, default_model_id = get_default_model_name_list()
# 添加一个文本组件来显示选择的模型ID,并设置默认值
selected_model_id = gr.Textbox(
label="选中的模型ID",
interactive=False,
value=default_model_id # 设置默认值
)
model_type.change(fn=update_model_name_list, inputs=model_type, outputs=model_name)
model_name.change(fn=on_model_select, inputs=model_name, outputs=selected_model_id)
# 新增一个按钮来触发新闻收集
button = gr.Button("生成最新动态")
# 设置输出组件
markdown_output = gr.Markdown()
file_output = gr.File(label="下载报告")
# 将按钮点击事件与导出函数绑定
使用 Gradio 构建了一个简洁的 Web 界面,包含:
- 模型选择功能
- 新闻生成按钮
- Markdown 输出展示
- 报告下载功能
- 分析报告结构:
从生成的报告来看,它包含三个主要部分:
- 产品分类分析(AI 工具、生产力工具、开发者工具等)
- 市场趋势分析(主要趋势、驱动因素、发展方向)
- 重点产品推荐(创新性、市场潜力等)
MVP 快速迭代的关键点
在开发这个 MVP 的过程中,我总结出几个快速迭代的关键点:
1. 合理使用第三方库
不要重复造轮子!比如:
- 用
requests
和BeautifulSoup
做爬虫 - 用
langchain
处理 AI 相关逻辑 - 用
gradio
搭建 Web 界面
这些成熟的库不仅能加快开发速度,而且稳定性有保障。
2. 优先实现核心功能
对于 MVP 来说,能用就行是第一要务。比如:
- 先支持单个新闻源,验证整个流程
- AI 处理先用最简单的提示词
- 界面先实现基础展示,不搞花哨的效果
3. 重视用户反馈
MVP 的目的是快速验证想法,所以:
- 部署后立即收集用户反馈
- 根据反馈及时调整功能
- 不要过度开发用户不关心的特性
最终的实现效果
以下就是程序运行后的初始页面效果:
是不是也算有模有样?
这次我是用了豆包大模型作为我们的 AI 总结模型,我这里声明了Doubao-pro-32k
和Doubao-lite-32k
两个模型,大家可以根据自己的需求选择不同的模型,但只是 AI 总结的话,其实Doubao-lite-32k
就够用了。
关于如何使用豆包大模型和相关 SDK 代码的,可以看看以下链接的指南:
https://www.volcengine.com/docs/82379/1302008
对了,这里还要说一句,因为豆包大模型调用时的 model_id
是每个人生成时都不一样的,所以大家运行前,记得配置好上述的指南,然后基于指南拿到的 model_id
更新项目的这个配置文件models.yaml
:
doubao:
Doubao-lite-32k-240828:
id: ep-20241012093209-b6hzs
Doubao-pro-32k-240828:
id: ep-20241128104031-lsvzw
当然你可以扩展使用更多其他的模型进来。
如何学习AI大模型?
作为一名热心肠的互联网老兵,我决定把宝贵的AI知识分享给大家。 至于能学习到多少就看你的学习毅力和能力了 。我已将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。
这份完整版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费
】
一、全套AGI大模型学习路线
AI大模型时代的学习之旅:从基础到前沿,掌握人工智能的核心技能!
二、640套AI大模型报告合集
这套包含640份报告的合集,涵盖了AI大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师,还是对AI大模型感兴趣的爱好者,这套报告合集都将为您提供宝贵的信息和启示。
三、AI大模型经典PDF籍
随着人工智能技术的飞速发展,AI大模型已经成为了当今科技领域的一大热点。这些大型预训练模型,如GPT-3、BERT、XLNet等,以其强大的语言理解和生成能力,正在改变我们对人工智能的认识。 那以下这些PDF籍就是非常不错的学习资源。
四、AI大模型商业化落地方案
作为普通人,入局大模型时代需要持续学习和实践,不断提高自己的技能和认知水平,同时也需要有责任感和伦理意识,为人工智能的健康发展贡献力量。
更多推荐
所有评论(0)