我在我的 django 中使用 google gemini api,一切都很顺利,在终端中生成的 Gemini 响应非常完美,两个段落和所有段落之间都有空格,但是当我将此响应传递到 html 页面时,所有格式都消失了,那里两段之间没有空格,我不知道为什么它在响应中产生不必要的星星**,请告诉我如何修复它。
这是终端中生成的响应的图像。
这个就是它在 html 页面中的样子。
我将 Gemini 生成的响应存储在数据库中,然后在 html 页面上获取它。
请帮助我并告诉我如何使其在 html 中看起来更整洁。告诉我如何忽略那些不必要的星星。
这是 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 响应,你需要做两件事:
- 将 Gemini 响应转换为 HTML。
- 对星号进行转义。
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