首页 > 编程问答 >为什么我在 html 页面的格式化段落中没有收到 google gemini 响应

为什么我在 html 页面的格式化段落中没有收到 google gemini 响应

时间:2024-08-04 17:15:55浏览次数:12  
标签:python html django google-gemini gemini

我在我的 django 中使用 google gemini api,一切都很顺利,在终端中生成的 Gemini 响应非常完美,两个段落和所有段落之间都有空格,但是当我将此响应传递到 html 页面时,所有格式都消失了,那里两段之间没有空格,我不知道为什么它在响应中产生不必要的星星**,请告诉我如何修复它。 enter image description here

这是终端中生成的响应的图像。

enter image description here

这个就是它在 html 页面中的样子。

我将 Gemini 生成的响应存储在数据库中,然后在 html 页面上获取它。

请帮助我并告诉我如何使其在 html 中看起来更整洁。告诉我如何忽略那些不必要的星星。

这就是我的 models.py 的样子 enter image description here

这是 html 模板

{% load static %}
<!-- main/templates/home.html -->
<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Welcome</title>
    <link rel="stylesheet" type="text/css" href="{% static 
'home.css' %}">
</head>

<body>
    <h1>Welcome to our website</h1>

    {% for data_1 in data_test %}
    <div>
        <h1 style="color: antiquewhite;">{{data_1.Question}}</h1>
        <br>
        <p style="color: aqua;">{{data_1.Answer}}</p>
    </div>
    {% endfor %}
</body>

</html>

问题在于你将 Gemini 的纯文本响应直接呈现为 HTML。HTML 将空格、换行符和星号视为普通文本,而不是格式化指令。

为了正确显示 Gemini 响应,你需要做两件事:

  1. 将 Gemini 响应转换为 HTML。
  2. 对星号进行转义。

1. 将 Gemini 响应转换为 HTML

你需要将 Gemini 响应中的换行符转换为 <br> 标签,并将段落转换为 <p> 标签。你可以使用 Python 代码来实现:

import re

def gemini_to_html(text):
    """将 Gemini 文本转换为 HTML。"""
    text = text.replace('\n\n', '</p><p>')  # 将双换行符转换为段落标签
    text = text.replace('\n', '<br>')  # 将单换行符转换为换行符标签
    text = f'<p>{text}</p>' # 将整个文本包裹在段落标签中
    return text

在你的 Django 模板中,你可以这样使用这个函数:

{% for data_1 in data_test %}
<div>
    <h1 style="color: antiquewhite;">{{data_1.Question}}</h1>
    <br>
    <p style="color: aqua;">{{ data_1.Answer|gemini_to_html }}</p>
</div>
{% endfor %}

2. 对星号进行转义

在 HTML 中,星号 ( * ) 用于表示粗体文本。你需要将 Gemini 响应中的星号转义为 \* ,以便它们在 HTML 中正确显示。 你可以使用 Django 内置的 escape 过滤器:

<p style="color: aqua;">{{ data_1.Answer|gemini_to_html|escape }}</p>

这将确保星号在 HTML 中被正确转义。

总结

通过将 Gemini 响应转换为 HTML 并对星号进行转义,你就可以在 HTML 页面中正确显示格式化的 Gemini 响应。

标签:python,html,django,google-gemini,gemini
From: 78830622

相关文章

  • Python Matplotlib Quiver 绘制向量场
    我正在尝试使用Matplotlib的quiver函数绘制引力矢量场,我有一个函数可以计算由任意数量的质量引起的引力场,但是在绘制它时,我在质量位置周围得到了奇怪的结果。出于矢量绘图的目的,该函数返回x和y方向上的场分量、它们的x和y坐标以及2D场数组,这对于绘图不是必需的,但对......
  • 完全用python 实现消息中间件2
    为了完善这个简单的消息中间件,我们可以添加以下功能:消息持久化:虽然在这个示例中我们不会使用数据库,但我们可以将消息保存到文件中,以模拟持久化存储。消息确认:添加一个机制来确认消息已经被消费。并发控制:确保在多线程或多进程环境中消息的安全处理。以下是更新后的代码:fr......
  • 16:Python一些常用的变量命名
    变量名的命名直接影响到程序的易读性,好的变量名应该简洁、易于理解。一、单字符变量名数学中通常用x,y来表示坐标,同样的,在命名变量时,可以使用一些具有特定含义的单个字符。这样的变量名兼具有意义和极简两大优点,作为编程人员应熟记。具体列举如下。i、j、k:数值(integer(整数))......
  • 15:Python数据类型的综合对比整理
    #Python有六个标准的数据类型:#Numbers(数字)int#String(字符串)str字符串一旦创建,不可修改,一旦修改或者拼接,都会造成重新生成字符串#List(列表)list中号括起来,逗号分开,可以是数字、字符串、列表、布尔值,列表可以嵌套任何类型,列表有序元素可以被修改#Tup......
  • 用Python打造精彩动画与视频, 6.2 使用Manim进行数学和科学可视化
     6.2使用Manim进行数学和科学可视化Manim(MathematicalAnimationEngine)是一款强大的动画制作工具,尤其适用于数学和科学领域的可视化。它由3Blue1Brown的GrantSanderson开发,旨在通过动画演示复杂的数学概念,使其更易于理解。使用Manim,用户可以创建高质量的数学动画,从简单的......
  • 用Python打造精彩动画与视频,5.3 使用Manim创建简单动画
     5.3使用Manim创建简单动画在这一节中,我们将介绍如何使用Manim创建简单的动画。我们将从基本的场景构建开始,然后演示如何添加动画效果。通过这些示例,你将能够掌握使用Manim创建各种动画的基本技能。5.3.1创建一个简单的场景Manim中的基本单元是场景(Scene)。每个场景都是一......
  • 用Python打造精彩动画与视频, 5.2 安装和设置Manim
     5.2安装和设置ManimManim是一个强大的动画库,用于创建高质量的数学动画。它最初由3Blue1Brown的GrantSanderson开发,并被广泛用于教育和展示。以下是安装和设置Manim的详细步骤。5.2.1安装ManimManim需要Python环境和一些依赖库。在安装Manim之前,请确保已经......
  • 用Python打造精彩动画与视频,6.1 复杂动画场景的构建
     第六章:探索Manim的潜力6.1复杂动画场景的构建在本节中,我们将深入探索如何使用Manim构建复杂的动画场景。Manim是一款功能强大的Python库,广泛应用于数学可视化和教育视频制作。通过理解并掌握Manim的高级功能和技巧,你将能够创建出引人入胜且具有高可读性的动画场景。6.1.1......
  • 在 Python 中从 HTML 中抓取嵌入的 Google Sheet
    这对我来说相对棘手。我正在尝试提取来自python中的google工作表的嵌入表。这是链接我不拥有该工作表,但它是公开可用的。这是迄今为止我的代码,当我输出标题时,它向我显示“”。任何帮助将不胜感激。最终目标是将此表转换为pandasDF。多谢你们importlx......
  • 使用 django 的 EmailMessage 发送波斯语电子邮件时出现问题
    我对django相当陌生,并尝试使用django.core.mail.EmailMessage发送包含波斯语字母的电子邮件。这是我的代码:fromdjango.core.mailimportEmailMessagefromdjango.confimportsettingsdefcustom_sender(subject:str,body:str,recipient_list:list[str],......