使用DeepSeek-V3和Gradio的提示工程构建AI应用

使用DeepSeek-V3和Gradio的提示工程构建人工智能应用

您是否想过如何利用人工智能的力量让复杂的任务变得更简单?如果不需要高级技术技能就能创建人工智能驱动的应用程序会怎样?有了最先进的语言模型 DeepSeek-V3 和简单的界面生成器 Gradio 等工具,创建人工智能解决方案变得前所未有的简单。无论您是要编写 YouTube 脚本、总结法律文件还是规划旅行,本指南都将向您展示如何结合这些工具来创建实用的应用程序。

学习目标

  • 了解如何获取 API 密钥并将其集成到您的 Python 项目中。
  • 使用 Gradio 为人工智能应用程序创建引人入胜的直观 Web 界面,让没有专业技术知识的用户也能使用这些界面。
  • 制作提示,引导 DeepSeek-V3 为不同应用生成所需的输出。
  • 构建可解决内容创建、市场营销、法律分析、情感分析和旅游规划等实际问题的实践应用。
  • 了解DeepSeek-V3和Gradio如何利用提示工程简化人工智能应用开发。

了解DeepSeek-V3

DeepSeek-V3 是一种先进的语言模型,旨在处理各种复杂的自然语言处理(NLP)任务。无论您需要生成创意内容、总结长文本,还是分析代码,DeepSeek-V3都能为您带来高水平的复杂性和细微差别。它的架构利用先进的深度学习技术,能够理解上下文,生成连贯的响应,甚至能根据提供的指令调整语气。这种灵活性使其成为各种应用的理想选择。

了解Gradio

Gradio

Source: Gradio

Gradio 是一个功能强大而又简单易用的 python 库,它能让开发人员以最小的工作量为机器学习模型创建交互式网络界面。无需从头开始创建用户界面,Gradio 可以将模型封装在一个简单的函数中,并自动生成一个美观、用户友好的网络应用程序。Gradio具有拖放的简便性,是DeepSeek-V3的完美伴侣,可实现人工智能应用的快速原型开发和无缝部署。

在本指南中,我们将把每个应用分解成简单易懂的步骤。这种全面的方法将确保即使是人工智能开发的新手也能自信地跟上并构建自己的创新应用程序。

前提条件和设置

在开始应用程序开发之前,请确保您已准备就绪:

Deepseek API密钥

  • 访问 DeepInfra 的官方网站,注册或登录,然后导航到“Dashboard”。
  • 在“API keys”部分,点击“New API key”,提供名称并生成密钥。
  • 注意:您只能查看一次 API 密钥,请妥善保管。

安装所需的依赖项

打开终端并运行

pip install gradio openai

您需要使用 pip 安装 Gradio 和 OpenAI 客户端库(与 DeepSeek-V3 兼容)。

环境设置

首先导入必要的库,并使用 API 密钥初始化客户端。此外,创建一个新的 Python 文件,例如 app.py,然后插入下面提供的代码。

import openai
import gradio as gr
# Replace "YOUR_API_KEY" with the actual API key you obtained from DeepInfra.
API_KEY = "YOUR_API_KEY"
client = openai.OpenAI(
api_key=API_KEY,
base_url="https://api.deepinfra.com/v1/openai",
)

YouTube脚本撰写器

YouTube 脚本作家应用程序利用 Deepseek-V3 的创意功能,根据给定主题生成详细的视频脚本。该应用程序通过提供连贯的叙事大纲,简化了脚本编写过程,是内容创作者寻找灵感的绝佳选择。

  • 如上图所示,初始化客户端。
  • 我们定义了一个函数,调用 DeepSeek-V3 模型,以 YouTube 内容创作专家的身份,根据提供的主题生成 YouTube 脚本。
def generate_script(topic: str) -> str:
"""
Generate a detailed YouTube script based on the provided topic using the DeepSeek-V3 model.
Args:
topic (str): The subject or topic for which the YouTube script is to be generated.
Returns:
str: The generated YouTube script as a string. If an error occurs during generation, an error message is returned.
"""
try:
response = client.chat.completions.create(
model="deepseek-ai/DeepSeek-V3",
messages=[
{"role": "system", "content": "You are an expert YouTube content creator."},
{"role": "user", "content": f"Write a detailed YouTube script for a video about '{topic}'."}
],
max_tokens=300,
temperature=0.7
)
return response.choices[0].message.content.strip()
except Exception as e:
return f"Error: {str(e)}"
  • 然后,我们创建一个简单的 Gradio 界面,接受用户输入(一个视频主题)并显示生成的脚本。
# Create Gradio interface for the YouTube Script Writer
def app_interface(topic: str) -> str:
"""
Generate a YouTube script based on the given topic.
Args:
topic (str): The subject or theme for which the script should be generated.
Returns:
str: The generated YouTube script or an error message if generation fails.
"""
return generate_script(topic)
try:
interface = gr.Interface(
fn=app_interface,
inputs=gr.Textbox(label="Video Topic"),
outputs=gr.Textbox(label="Generated YouTube Script"),
title="YouTube Script Writer"
)
interface.launch()
except Exception as e:
print(f"Failed to launch Gradio interface: {e}")
  • 在终端运行整个代码(python app.py)后,就能看到下面的界面。
  • 给出任何你喜欢的主题,然后点击提交。嘭!一键就能得到回复。你还可以点击标记,将回复保存到本地文件中。

YouTube脚本撰写器

营销AI助手

这款应用程序旨在帮助营销专业人员生成有说服力的产品描述、社交媒体帖子和活动创意。Deepseek-V3 将充当营销专家助理,确保生成的内容引人入胜、切中要害。

  • 重复使用之前定义的初始化代码。
  • 我们现在创建一个函数,向DeepSeek-V3发送生成营销文案的提示。我们输入了一个详细的提示,指示模型为指定产品生成全面的营销描述。
def generate_marketing_copy(product: str) -> str:
"""
Generate a marketing description for a given product.
This function leverages the DeepSeek-V3 model to create a marketing copy that includes details on the target audience,
key features, emotional appeal, and a call-to-action for the product.
Args:
product (str): The product for which the marketing copy should be generated.
Returns:
str: The generated marketing copy or an error message if an exception occurs.
"""
prompt = f"""
Write a marketing description for {product}. Include:
- Target audience (age, interests)
- Key features
- Emotional appeal
- Call-to-action
"""
try:
response = client.chat.completions.create(
model="deepseek-ai/DeepSeek-V3",
messages=[
{"role": "system", "content": "You are a marketing strategist."},
{"role": "user", "content": prompt}
],
max_tokens=300,
)
return response.choices[0].message.content
except Exception as e:
return f"Error: {str(e)}"
  • 我们现在设计 Gradio 界面,以便与营销文案功能进行交互。
def app_interface(product_name: str) -> str:
"""
Generates a compelling marketing description for the specified product.
Args:
product_name (str): The name of the product for which to generate a description.
Returns:
str: The generated marketing description or an error message if generation fails.
"""
prompt = f"Write a compelling marketing description for the product '{product_name}'."
try:
return generate_text(prompt)
except Exception as e:
return f"Error: {str(e)}"
try:
interface = gr.Interface(
fn=app_interface,
inputs=gr.Textbox(label="Product Name"),
outputs=gr.Textbox(label="Generated Description"),
title="Marketing AI Assistant"
)
interface.launch()
except Exception as e:
print(f"Failed to launch Gradio interface: {e}")
  • 在终端运行整个代码(python app.py)后,您将可以看到下面的屏幕。
  • 输入产品名称并单击提交以获得响应。

营销AI助手

法律文件摘要器

法律文件通常内容繁杂,语言复杂。Legal Document Summarizer 应用程序可生成简明摘要,突出义务、处罚和终止条款等关键要点,从而简化这些文件。对于需要快速掌握冗长文件精髓的法律专业人士和学生来说,这款应用程序尤其有用。

  • 除标准库外,此应用程序还使用 PyPDF2 等 PDF 阅读库。如果尚未安装,请务必安装:
pip install PyPDF2
  • 重复使用之前定义的初始化代码。
  • 与之前的应用程序类似,我们使用 DeepSeek-V3 API 密钥设置 API 客户端。
  • 然后,我们创建一个函数,读取上传的 PDF,提取文本,然后将文本发送到 DeepSeek-V3 进行摘要。
from typing import Any
def summarize_legal_doc(pdf_file: Any) -> str:
"""
Extract and summarize the text from a legal PDF document.
This function uses PyPDF2 to read and extract text from the provided PDF file.
The extracted text is then sent to the DeepSeek-V3 model to produce a summary
in the form of 5 bullet points, emphasizing obligations, penalties, and termination clauses.
Args:
pdf_file (Any): A file-like object representing the uploaded PDF. It must have a 'name' attribute.
Returns:
str: The summarized legal document. Returns an error message if no file is provided or if an error occurs.
"""
if pdf_file is None:
return "No file uploaded."
try:
# Extract text from the PDF using PyPDF2
reader = PyPDF2.PdfReader(pdf_file.name)
extracted_text = ""
for page in reader.pages:
page_text = page.extract_text()
if page_text:
extracted_text += page_text + "\n"
# Prepare the messages for the DeepSeek-V3 summarization request
messages = [
{
"role": "system",
"content": (
"Summarize this legal document into 5 bullet points. "
"Highlight obligations, penalties, and termination clauses."
)
},
{
"role": "user",
"content": extracted_text
}
]
# Request the summary from DeepSeek-V3
response = client.chat.completions.create(
model="deepseek-ai/DeepSeek-V3",
messages=messages,
temperature=0.2  # Lower temperature for factual accuracy
)
return response.choices[0].message.content.strip()
except Exception as e:
return f"Error: {str(e)}"

最后,我们创建了一个 Gradio 界面,允许用户上传 PDF 并查看生成的摘要。

try:
# Create a Gradio interface
interface = gr.Interface(
fn=summarize_legal_doc,
inputs=gr.File(label="Upload PDF Document"),
outputs=gr.Textbox(label="Summary"),
title="Legal Document Summarizer"
)
# Launch the app
interface.launch()
except Exception as e:
print(f"Failed to launch Gradio interface: {e}")

在终端运行 app.py 文件。这个应用程序允许你上传 pdf 文档,并给出文档摘要。

法律文件摘要器

资料来源 测试上述应用程序时使用了 Kaggle 提供的 pdf 文档 。

情感分析应用程序

了解一段文字背后的情感对于衡量公众舆论、分析客户反馈或监控社交媒体趋势至关重要。情感分析应用程序使用 DeepSeek-V3 以描述性的方式确定给定文本是正面、负面还是中性。

  • 同样,我们从客户端的标准初始化开始。
  • 我们创建一个分析输入文本情感的函数。
def analyze_sentiment(text: str) -> str:
"""
Analyze the sentiment of a given text using the DeepSeek-V3 model.
This function sends the provided text to the DeepSeek-V3 model with a prompt to analyze sentiment
and returns the analysis result. 
Args:
text (str): The input text for sentiment analysis.
Returns:
str: The sentiment analysis result or an error message if an exception is raised.
"""
try:
response = client.chat.completions.create(
model="deepseek-ai/DeepSeek-V3",
messages=[
{"role": "system", "content": "You are an expert in sentiment analysis."},
{"role": "user", "content": f"Analyze the sentiment of this text: {text}"}
],
max_tokens=150,
temperature=0.5
)
return response.choices[0].message.content.strip()
except Exception as e:
return f"Error: {str(e)}"
  • 我们建立了一个界面,允许用户输入文本并查看情感分析结果。该函数直接将用户文本传递给情感分析函数。
def sentiment_interface(text: str) -> str:
"""
Serve as an interface function to analyze sentiment of the provided text.
Args:
text (str): The input text to be analyzed.
Returns:
str: The result of the sentiment analysis.
"""
return analyze_sentiment(text)
try:
interface = gr.Interface(
fn=sentiment_interface,
inputs=gr.Textbox(label="Enter Text"),
outputs=gr.Textbox(label="Sentiment Analysis"),
title="Sentiment Analysis App"
)
interface.launch()
except Exception as e:
print(f"Failed to launch Gradio interface: {e}")
  • 应用程序启动后,您就可以插入文本并获得回复。

情感分析应用程序

旅行行程计划器

计划旅行可能会让人不知所措,但旅行行程计划器应用程序可以根据用户输入的信息生成详细的行程,从而简化了这一过程。用户只需指定目的地、天数和兴趣爱好,就能获得个性化的旅行计划,包括活动建议、当地美食推荐和交通提示。

  • 再次使用标准初始化代码。
  • 我们创建一个函数,根据用户输入构建详细的旅行路线。我们创建的提示包括所有必要细节(目的地、持续时间、兴趣爱好)和具体说明,其中包括一天中的不同时段、美食推荐和交通提示。
def plan_itinerary(destination: str, days: int, interests: str) -> str:
"""
Generate a travel itinerary for the specified destination, duration, and interests.
This function uses the DeepSeek-V3 model to create a detailed travel itinerary that includes activities for different times of the day, 
local cuisine recommendations, and transportation tips.
Args:
destination (str): The destination for the travel itinerary.
days (int): The number of days for the itinerary.
interests (str): The travel interests (e.g., "Adventure", "Cultural", "Relaxation").
Returns:
str: The generated itinerary text, or an error message if an exception occurs.
"""
prompt = f"""
Create a {days}-day itinerary for {destination}. Focus on {interests}.
Include:
- Morning/Afternoon/Evening activities
- Local cuisine recommendations
- Transportation tips
"""
try:
response = client.chat.completions.create(
model="deepseek-ai/DeepSeek-V3",
messages=[
{"role": "system", "content": "You are a travel expert."},
{"role": "user", "content": prompt}
],
max_tokens=500
)
return response.choices[0].message.content.strip()
except Exception as e:
return f"Error: {str(e)}"
  • 在文本框中显示生成的行程,并以网络应用程序的形式启动界面。行程计划器的界面设计可捕捉用户的多种输入。
try:
interface = gr.Interface(
fn=plan_itinerary,
inputs=[
gr.Textbox(label="Destination"),
gr.Number(label="Number of Days"),
gr.Dropdown(["Adventure", "Cultural", "Relaxation"], label="Interests")
],
outputs=gr.Textbox(label="Itinerary"),
title="Travel Itinerary Planner"
)
interface.launch()
except Exception as e:
print(f"Failed to launch Gradio interface: {e}")

旅行行程计划器

构建人工智能应用程序的最佳实践

在您完成这些项目时,请考虑以下最佳实践,以确保您的应用程序具有健壮性和可维护性:

  • 错误处理:在函数中使用 try-except 块来优雅地管理 API 错误。
  • 调整参数:使用不同的参数来获得所需的输出。
  • 缓存响应:为了尽量减少重复的 API 调用并降低延迟,请考虑在适当的情况下缓存响应。
  • 用户反馈:当出现错误或应用程序正在处理用户请求时,为用户提供清晰的信息。
  • 安全性:始终保持 API 密钥的安全性,不要在公共存储库中公开这些密钥。

小结

通过使用提示工程将 DeepSeek-V3 和 Gradio 整合在一起,开发人员可以开启人工智能应用开发的无限可能。本指南详细介绍了如何构建五个不同领域的人工智能应用程序。无论您是经验丰富的开发人员,还是刚刚起步,这些工具都能让您进行实验、创新,并迅速将您的想法付诸实践。随着人工智能技术的不断发展,这里讨论的工具和技术只会变得更加强大。今天接受这些创新,就能为未来做好准备,让人工智能驱动的解决方案融入工作和生活的方方面面。

  • 利用 DeepSeek-V3 和 Gradio 使用提示工程,开发人员可以轻松构建人工智能驱动的应用程序,实现无缝的自然语言处理和直观的人工智能部署。
  • 每个应用程序都是一步一步构建的,并附有详细说明,使初学者也能轻松掌握,同时还能为高级用户提供强大的解决方案。
  • 通过展示人工智能的广泛适用性,本指南涵盖了从创意内容生成和营销到法律摘要和旅行规划等一系列应用。
  • 根据具体要求定制参数、系统提示和界面元素,并在实际场景中扩展解决方案。
  • 通过模块化代码和详细提示,这些应用程序可以轻松定制和扩展,以满足特定要求或集成到更大的系统中。

评论留言