总结冗长的文本可能很乏味,尤其是在 PyBazaar 这样的平台上,简洁的摘要可以改善用户体验。在这篇文章中,我将分享如何使用 Simplemind 和 Gemini 在我的基于 Django 的项目中自动化此过程。
背景信息
最近,我推出了 PyBazaar.com,这是一个供 Python 开发人员展示技能、寻找工作机会以及发布和查找开发资源的网站。其目的是为 Python 开发人员提供一个可以营销他们的服务、产品或项目的中心场所。
PyBazaar 在详细视图中显示职业机会和资源的冗长描述,在列表视图中显示简短摘要。摘要帮助用户快速掌握资源和职业机会的内容,而无需打开每个详细视图,从而增强 PyBazaar 的整体浏览体验。为了让编辑更顺畅,我引入了基于AI的自动摘要。
选择 Simplemind 与法学硕士进行交流
Kenneth Reitz,著名包 requests 的作者,最近发布了他的最新作品——Simplemind——它改善了开发人员使用大型语言模型 (LLM) API 的体验。我认为这是一个尝试将他的包集成到 PyBazaar 的好机会。
虽然我选择 Google Gemini 作为免费套餐,但 Simplemind 对 OpenAI 或 Claude 等提供商的支持意味着开发人员可以根据需要扩展以获得更高级的功能或更精确的结果。
设置 API 密钥
首先,我必须在 Google AI Studio 获取 API 密钥。
Django 集成
然后我安装了SimplMind:
(venv)$ pip install 'simplemind[full]'
但是,在等待其中一个依赖项 (grpcio) 在我的 Mac 上编译时,我有时间喝一杯能量饮料,并有足够的时间滚动浏览一半的社交媒体源。
SimplMind 希望在环境变量中定义 LLM API 密钥。在我的 Django 项目中,我将机密存储在 JSON 文件中,Git 会忽略该文件,并使用我编写的实用函数 get_secret() 读取这些值。
所以,我在 Django 设置中添加了这些行:
import os os.environ["GEMINI_API_KEY"] = get_secret("GEMINI_API_KEY") DEFAULT_LLM_PROVIDER = "gemini"
我创建了一个简单的视图,它获取发布的 HTML 内容,要求 LLM 对其进行总结,并将摘要返回给用户:
import json import simplemind from django.contrib.auth.decorators import login_required from django.conf import settings from django.http import JsonResponse from django.utils.html import strip_tags @login_required def summarize(request): summary = "" try: if ( request.method == "POST" and (data := json.loads(request.body)) and (content := data.get("content")) and (text := strip_tags(content).strip()) ): summary = simplemind.generate_text( prompt=f"Condense the following information in 2 sentences:\n\n{text}", llm_provider=settings.DEFAULT_LLM_PROVIDER, ).strip() except json.JSONDecodeError: pass data = {"summary": summary} return JsonResponse(data)
如您所见,Simplemind 与 requests 应用程序一样优雅。如果我需要更高级的结果或更智能的查询,我可以轻松切换到 OpenAI 或 Claude。
我使用 strip_tags() 来减少标记计数,并使用 strip() 来删除前导和尾随空格。
为了提高视图的性能,我还可以使用 ASGI 或后台任务,但当 PyBazaar 有更多用户时需要考虑这一点。
摘要按钮有其模板,我将其包含在我的 Django Crispy Forms 布局中:layout.HTML("""{% include "summarizer/includes/summarize_button.html" %}"""):
(venv)$ pip install 'simplemind[full]'
当用户单击“Summarize by AI”按钮时,Javascript 会暂时禁用该按钮,将其文本更改为“Summarizing...”,从 QuillJS 字段读取 HTML 值,并将其发布为 {"content ": "..."} 到摘要视图。收到 {"summary": "..."} 形式的摘要后,Javascript 会填充摘要文本区域并使按钮再次可点击。
结论
SimplMind 使用智能默认设置使 LLM 的使用变得更加容易,因此开发人员无需调整温度或 max_tokens 等复杂的设置。
Gemini LLM 可以免费使用,对于像这样的简单功能和中等数量的活跃用户来说似乎足够了。
我仅用了半天时间就在 PyBazaar 上实现了此摘要功能,并且我可以轻松地调整此集成以生成元描述、电子邮件草稿或个性化推荐。
如果您是一名 Python 开发人员,希望展示自己的技能、共享资源或寻找机会,请立即访问 PyBazaar.com!
封面照片由Caio拍摄
以上是在 Django 网站中创建基于 AI 的摘要的详细内容。更多信息请关注PHP中文网其他相关文章!

JavaScript在网站、移动应用、桌面应用和服务器端编程中均有广泛应用。1)在网站开发中,JavaScript与HTML、CSS一起操作DOM,实现动态效果,并支持如jQuery、React等框架。2)通过ReactNative和Ionic,JavaScript用于开发跨平台移动应用。3)Electron框架使JavaScript能构建桌面应用。4)Node.js让JavaScript在服务器端运行,支持高并发请求。

Python更适合数据科学和自动化,JavaScript更适合前端和全栈开发。1.Python在数据科学和机器学习中表现出色,使用NumPy、Pandas等库进行数据处理和建模。2.Python在自动化和脚本编写方面简洁高效。3.JavaScript在前端开发中不可或缺,用于构建动态网页和单页面应用。4.JavaScript通过Node.js在后端开发中发挥作用,支持全栈开发。

C和C 在JavaScript引擎中扮演了至关重要的角色,主要用于实现解释器和JIT编译器。 1)C 用于解析JavaScript源码并生成抽象语法树。 2)C 负责生成和执行字节码。 3)C 实现JIT编译器,在运行时优化和编译热点代码,显着提高JavaScript的执行效率。

JavaScript在现实世界中的应用包括前端和后端开发。1)通过构建TODO列表应用展示前端应用,涉及DOM操作和事件处理。2)通过Node.js和Express构建RESTfulAPI展示后端应用。

JavaScript在Web开发中的主要用途包括客户端交互、表单验证和异步通信。1)通过DOM操作实现动态内容更新和用户交互;2)在用户提交数据前进行客户端验证,提高用户体验;3)通过AJAX技术实现与服务器的无刷新通信。

理解JavaScript引擎内部工作原理对开发者重要,因为它能帮助编写更高效的代码并理解性能瓶颈和优化策略。1)引擎的工作流程包括解析、编译和执行三个阶段;2)执行过程中,引擎会进行动态优化,如内联缓存和隐藏类;3)最佳实践包括避免全局变量、优化循环、使用const和let,以及避免过度使用闭包。

Python更适合初学者,学习曲线平缓,语法简洁;JavaScript适合前端开发,学习曲线较陡,语法灵活。1.Python语法直观,适用于数据科学和后端开发。2.JavaScript灵活,广泛用于前端和服务器端编程。

Python和JavaScript在社区、库和资源方面的对比各有优劣。1)Python社区友好,适合初学者,但前端开发资源不如JavaScript丰富。2)Python在数据科学和机器学习库方面强大,JavaScript则在前端开发库和框架上更胜一筹。3)两者的学习资源都丰富,但Python适合从官方文档开始,JavaScript则以MDNWebDocs为佳。选择应基于项目需求和个人兴趣。


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

SublimeText3 英文版
推荐:为Win版本,支持代码提示!

mPDF
mPDF是一个PHP库,可以从UTF-8编码的HTML生成PDF文件。原作者Ian Back编写mPDF以从他的网站上“即时”输出PDF文件,并处理不同的语言。与原始脚本如HTML2FPDF相比,它的速度较慢,并且在使用Unicode字体时生成的文件较大,但支持CSS样式等,并进行了大量增强。支持几乎所有语言,包括RTL(阿拉伯语和希伯来语)和CJK(中日韩)。支持嵌套的块级元素(如P、DIV),

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

MinGW - 适用于 Windows 的极简 GNU
这个项目正在迁移到osdn.net/projects/mingw的过程中,你可以继续在那里关注我们。MinGW:GNU编译器集合(GCC)的本地Windows移植版本,可自由分发的导入库和用于构建本地Windows应用程序的头文件;包括对MSVC运行时的扩展,以支持C99功能。MinGW的所有软件都可以在64位Windows平台上运行。

Atom编辑器mac版下载
最流行的的开源编辑器