硬核教程!AI 一键生成文案,让每张图都有它的故事

技术

picture.image

前言

在这个社交媒体兴盛的时代,每个人都是自己故事的讲述者。

但在分享生活的每一刻时,我们常常被一个简单却困扰的问题所困扰: 如何为我们的照片配上恰如其分的文案?

这正是本项目的出发点,先进的AI技术与照片分享的需求相结合,致力于为每一位用户提供一键生成文案的便利。

本项目会涉及工程代码开发,使用了文心一言SDK、百度千帆图像识别、OCR等技术应用。

🥳 同时我提供了6个文案创作高频应用场景的Prompt提示词,欢迎取用。

阅读建议:

  1. 一般读者用户: 无需深入技术细节,只需知道通过上传照片,我们的系统可以自动为您生成创意文案,使分享变得更加轻松。
  2. 技术爱好者/开发者: 本项目展示了图像识别和大语言模型技术的结合应用,如果对代码和工程实现感兴趣,可深入研究。项目教程包含技术细节,建议需要有了解 Python 基础代码知识,动手大模型工程应用实践能力,调用 SDK、API能力。
  3. 本项目入选文心大模型&PaddlePaddle飞桨的活动, 自由度高、奖励丰富,鼓励大家参与活动,参与就有奖品!记得将您的作品提交到指定表单呀!

picture.image img

(👆点击图片了解活动详情)

项目简介

设计背景

  • 为什么做这个项目: 在社交媒体日益流行的时代,许多人在分享照片时常常苦恼于如何配文,本项目让每张照片都能轻松配上合适的文案。
  • 痛点是什么: 在快节奏的生活中,人们希望快速分享生活点滴,但往往被找不到合适文案所困扰。
  • 提供了什么能力: 结合了图像识别和文心一言大语言模型的处理技术,能够智能分析照片内容,并根据分析结果生成有创意的文案。
  • 解决什么问题: 用户上传照片,一键自动生成文案,解决了用户在分享照片时“想不到文案”这一问题。

效果展示

😆 每一次烹饪,都是一次心灵的对话。

picture.image

picture.image

🐬 今天去看了海洋馆,写一篇小红书推文!

picture.image

picture.image

🤔 我想做一个安静的美男子,吟诗作赋

picture.image

picture.image

体验地址


        
          
https://aistudio.baidu.com/application/detail/11191  

      

设计思路

目标明确与需求梳理:

  • 确定产品目标: 让用户能够通过上传任何照片,快速生成与照片内容相匹配的文案,更简单的交互界面。
  • 用户需求调研: 通过调查问卷、用户访谈等方式,收集目标用户(如日常社交媒体用户、内容创作者)在发朋友圈时的常见困扰,特别关注他们在文案创作上的具体挑战。
  • 确认场景: 梳理6个场景「朋友圈、小红书、抖音、近代诗歌、微商营销、故事叙述」。
交互逻辑
  1. 上传图片
  2. 选择风格
  3. 生成文案

picture.image

数据流逻辑
  1. 上传图片
  2. 图像识别、OCR识别
  3. 得到图片关键信息
  4. 风格选择
  5. Prompt模版适配
  6. 文心一言处理Prompt+图片关键信息
  7. 输出文案

picture.image

实现流程

围绕实现目标,去设计实现功能,主要围绕围绕以下3点实现:

  • 支持用户上传图片
  • 支持选择文案风格
  • 支持自动生成文案

1.环境准备

环境准备请在下面 三选一 即可,如果您已经有 Python 3.x 相关环境可直接进行下一步。

  1. Paddle 星河社区: 在线使用免费的 GPU 资源,Notebook 开发教程:https://www.bilibili.com/video/BV1Lw411n7oU/?vd\_source=dd1574f6083e63c75e2160bc8014e317
  2. Anaconda 全家桶: 已包含 Python 和一些库,介绍、安装及使用教程:https://zhuanlan.zhihu.com/p/32925500
  3. Python 官方网站: https://www.python.org/ 进行下载安装。

2.Gradio 基础框架搭建

为什么选择 Gradio 作为 AI 的 UI 工具?

  1. 基于 Python: Gradio 是基于 Python 开发的库,使用 Gradio 作为 UI 工具可以避免语言切换的复杂性。
  2. 模块丰富: 支持多种输入和输出类型,包括文本、图像、音频等,同时还提供了丰富的界面组件,如文本框、滑块、按钮等,以及自定义的输出展示方式。
  3. 简单易用: 快速构建交互式应用程序,而无需繁琐的代码编写和复杂的配置。快速定义输入和输出函数,并通过几行代码即可将它们与界面组件关联起来。

我们所熟悉的 Stable Diffusion Web UI 使用的就是 Gradio 开发的交互界面。

picture.image img

Gradio 官方参考文档:https://www.gradio.app/guides/quickstart

👉 快速开始

  1. 打开命令行界面:打开命令行界面(例如 Windows 上的命令提示符或 Mac 上的终端)。
  2. 使用 pip 安装 Gradio:在命令行界面中输入以下命令,按下回车执行:

        
          
pip install gradio  

      

在项目工程文件使用时,我们只需导入 gradio 库即可,示例:


        
          
import gradio as gr  
  
def greet(name):return "Hello " + name + "!"  
  
demo = gr.Interface(fn=greet, inputs="text", outputs="text")  
  
if __name__ == "\_\_main\_\_":  
    demo.launch(show_api=False)     

      

picture.image img

(示例运行效果图)

✍️ 初版设计

我使用的大语言模型生成代码的方式,我仅需将我的诉求告诉 ChatGPT / 文心一言,它就可以自动帮我生成 Gradio 的代码,并且可以按照实际需求不断调整优化。

picture.image img

[用户]:


        
          
我现在要做这么一个图生文的功能,请你为我完善流程设计细节后,使用Gradio代码实现:  
  
1.用户上传图片  
2.用户选择风格模式(朋友圈、小红书、微博、抖音...)  
3.点击生成按钮  
4.执行图像识别提取图片中的关键信息  
5.将关键信息结果对接文心一言模型,根据用户选择风格模式生成文字信息  
6.将文字信息呈现给用户  

      

[回复]:


        
          
import gradio as gr  
from PIL import Image  
import requests  
  
# 假设您已经有函数来处理图像识别和调用文心一言模型  
def image\_recognition(image):  
    # 图像识别处理,返回识别的关键信息  
    return "关键信息"  
  
def generate\_text(key\_info, style):  
    # 根据关键信息和风格生成文本  
    return "生成的文本"  
  
# Gradio应用界面  
def process\_image(image, style):  
    key_info = image_recognition(image)  
    text = generate_text(key_info, style)  
    return text  
  
# 定义Gradio界面  
iface = gr.Interface(  
    fn=process_image,  
    inputs=[gr.inputs.Image(type="pil"), gr.inputs.Dropdown(["朋友圈", "小红书", "微博", "抖音"])],  
    outputs="text"  
)  
  
# 运行Gradio应用  
iface.launch()  

      

picture.image img

(运行效果图)

现在我们已经将基础交互框架已经搭建好了,可以支持图片上传、样式选择、提交清除按钮、转换的文本输出模块,接下来我们要将实际业务的流程处理逻辑代码进行补充。

3.功能设计与能力补齐

在我们这个产品业务流程设计中,我们需要有图像识别和 OCR 能力作为图片分析的数据源输入、大语言模型处理的能力作为数据处理,这与我们的业务模块息息相关,下面将介绍如何使用相关能力:

文心一言大模型 ERNIE Bot SDK

ERNIE Bot SDK 提供便捷易用的接口,可以调用文心一言的能力,包含文本创作、通用对话、语义向量、AI 作图等,具体支持功能如下(更多功能持续更新中):

  • 对话补全(Chat Completion)
  • 语义向量(Embedding)
  • 文生图 (Image Generation)
  • 函数调用 (Function Calling)

        
          
介绍地址:https://aistudio.baidu.com/cooperate/yiyan  

      

picture.image img

如何完成身份鉴权并使用?

picture.image img

AI Studio 个人中心的访问令牌页面,大家可以获取到自己的 ACCESS-TOKEN。

鉴权信息获取完整流程:https://github.com/PaddlePaddle/ERNIE-Bot-SDK/blob/develop/docs/authentication.md

ERNIE Bot SDK 开发完整教程可参考:https://aistudio.baidu.com/projectdetail/6779542

👉 快速开始

  1. 打开命令行界面:打开命令行界面(例如 Windows 上的命令提示符或 Mac 上的终端)。
  2. 使用 pip 安装 erniebot:在命令行界面中输入以下命令,按下回车执行:

        
          
pip install erniebot  

      

在项目工程文件使用时,我们只需导入 erniebot 库即可,示例:


        
          
import erniebot  
  
# List supported models  
models = erniebot.Model.list()  
  
print(models)  
# ernie-bot             文心一言模型(ernie-bot)  
# ernie-bot-turbo       文心一言模型(ernie-bot-turbo)  
# ernie-bot-4           文心一言模型(ernie-bot-4)  
# ernie-bot-8k          文心一言模型(ernie-bot-8k)  
# ernie-text-embedding  文心百中语义模型  
# ernie-vilg-v2         文心一格模型  
  
# Set authentication params  
erniebot.api_type = "aistudio"  
erniebot.access_token = "<access-token-for-aistudio>" # 这里需要填入你的ACCESS-TOKEN  
  
# Create a chat completion  
response = erniebot.ChatCompletion.create(model="ernie-bot", messages=[{"role": "user", "content": "你好,请介绍下你自己"}])  
  
print(response.get_result())  

      

✍️ 初版设计

我将文心一言模型能力封装成了一个 def 方法,便于其他模块进行调用交互:


        
          
# 调用文心一言模型  
def get\_ernie\_response(user\_message):  
    # 配置文心一言模型  
    erniebot.api_type = 'aistudio'  
    erniebot.access_token = '这里填写你的ACCESS\_TOKEN'  
  
    # 调用模型  
    response = erniebot.ChatCompletion.create(  
        model='ernie-bot',  
        messages=[  
            {  
                'role': 'user',  
                'content': user_message  
            }  
        ]  
    )  
    # 获取并返回结果  
    return response.get_result()  

      

picture.image img

(运行测试结果图)

创建百度智能云图像识别

精准识别超过十万种物体和场景,包含10余项高精度的识图能力并提供相应的API服务,充分满足各类开发者和企业用户的应用需求。(OCR识别也可以参考以下同样的办法)

地址:https://cloud.baidu.com/search/5Zu-5YOP6K-G5Yir/all-1

picture.image img

点击“立即使用”,在试用期间有大量免费测试资源。

picture.image img

进入“应用列表”,点击“创建应用”,填写应用必填信息并勾选图像识别“全选”。

picture.image img

picture.image img

创建完成后,在你的应用列表内可以看到你的应用信息,同时可以看到 API Key 和 Secret Key 的信息。

👉 快速开始

点击进入API在线调试,我们即可根据我们的业务场景进行调试

picture.image img

picture.image img

我们可以将示例代码直接放到我们的项目工程中,作为一个新的文件存储,并在主代码模块中进行模块引用,或者您也可以将其封装成独立的函数方法。


        
          
import requests  
  
API_KEY = "填写你的 API\_KEY"  
SECRET_KEY = "填写你的 SECRET\_KEY"  
  
def main():  
          
    url = "https://aip.baidubce.com/rest/2.0/image-classify/v2/advanced\_general?access\_token=" + get_access_token()  
      
    payload={}  
    headers = {  
        'Content-Type': 'application/x-www-form-urlencoded',  
        'Accept': 'application/json'  
    }  
      
    response = requests.request("POST", url, headers=headers, data=payload)  
      
    print(response.text)  
      
  
def get\_access\_token():  
    """  
    使用 AK,SK 生成鉴权签名(Access Token)  
    :return: access\_token,或是None(如果错误)  
    """  
    url = "https://aip.baidubce.com/oauth/2.0/token"  
    params = {"grant\_type": "client\_credentials", "client\_id": API_KEY, "client\_secret": SECRET_KEY}  
    return str(requests.post(url, params=params).json().get("access\_token"))  
  
if __name__ == '\_\_main\_\_':  
    main()  

      

✍️ 初版设计

我将图像识别模型能力封装成了一个 def 方法,便于其他模块进行调用交互:


          
import requests  
  
def get_access_token(api_key, secret_key):  
    """  
    使用 AK,SK 生成鉴权签名(Access Token)  
    :param api\_key: API密钥  
    :param secret\_key: 秘密密钥  
    :return: access\_token,或是None(如果错误)  
    """  
    url = "https://aip.baidubce.com/oauth/2.0/token"  
    params = {"grant\_type": "client\_credentials", "client\_id": api_key, "client\_secret": secret_key}  
    return str(requests.post(url, params=params).json().get("access\_token"))  
  
def classify_image(api_key, secret_key):  
    """  
    对图像进行分类。  
    :param api\_key: API密钥  
    :param secret\_key: 秘密密钥  
    """  
    access_token = get_access_token(api_key, secret_key)  
    if access_token:  
        url = "https://aip.baidubce.com/rest/2.0/image-classify/v2/advanced\_general?access\_token=" + access_token  
        payload = {}  
        headers = {  
            'Content-Type': 'application/x-www-form-urlencoded',  
            'Accept': 'application/json'  
        }  
        response = requests.request("POST", url, headers=headers, data=payload)  
        print(response.text)  
    else:  
        print("无法获取Access Token.")  
  
# 示例使用  
if __name__ == '\_\_main\_\_':  
    API_KEY = "填写你的 API\_KEY"  
    SECRET_KEY = "填写你的 SECRET\_KEY"  
    classify_image(API_KEY, SECRET_KEY)  

      

4.围绕场景设计 Prompt

在图片生成文案的过程中,我们拥有了图片解析后的数据源,如果需要进一步美化处理,即涉及到了与大语言模型交互的场景,而Prompt提示词能够在很大程度上控制大语言输出结果好坏,因此我针对几个文案场景设计了一些简单引导的Prompt提示词。

大家如果需要使用LangGPT结构的Prompt提示词建议使用文心4.0API进行开发会比较稳定

学习LangGPT提示词地址:https://github.com/EmbraceAGI/LangGPT

如何在大模型应用开发过程中结合Prompt使用?

🙋 这题我会:Prompt + 关键信息,拼接后一起提交给大语言模型处理,下面是一个示例:


        
          
prompt = f"""你现在的任务是从OCR文字识别的结果中提取我指定的关键信息。OCR的文字识别结果使用```符号包围,包含所识别出来的文字,  
                顺序在原始图片中从左至右、从上至下。我指定的关键信息使用[]符号包围。请注意OCR的文字识别结果可能存在长句子换行被切断、不合理的分词、  
                对应错位等问题,你需要结合上下文语义进行综合判断,以抽取准确的关键信息。  
                在返回结果时使用json格式,包含一个key-value对,key值为我指定的关键信息,value值为所抽取的结果。  
                如果认为OCR识别结果中没有关键信息key,则将value赋值为“未找到相关信息”。 请只输出json格式的结果,不要包含其它多余文字!下面正式开始:  
                OCR文字:```{ocr\_result}```  
                要抽取的关键信息:[{key}]。"""  

      

同样来说,本项目中,关键信息即为「OCR识别的数据结果」+「图像识别的数据结果」

下面提供了部分Prompt样例,您也可以按照自己的业务需求去优化设计,并结合关键信息填充:

小红书风格

        
          
你是小红书爆款写作专家,请你用以下步骤来进行创作,首先产出5个标题(含适当的emoji表情),其次产出1个正文(每一个段落含有适当的emoji表情,文末有合适的tag标签)  
一、在小红书标题方面,你会以下技能:  
1. 采用二极管标题法进行创作  
2. 你善于使用标题吸引人的特点  
3. 你使用爆款关键词,写标题时,从这个列表中随机选1-2个  
4. 你了解小红书平台的标题特性  
5. 你懂得创作的规则  
二、在小红书正文方面,你会以下技能:  
1. 写作风格  
2. 写作开篇方法  
3. 文本结构  
4. 互动引导方法  
5. 一些小技巧  
6. 爆炸词  
7. 从你生成的稿子中,抽取3-6个seo关键词,生成#标签并放在文章最后  
8. 文章的每句话都尽量口语化、简短  
9. 在每段话的开头使用表情符号,在每段话的结尾使用表情符号,在每段话的中间插入表情符号  
三、结合我给你输入的信息,以及你掌握的标题和正文的技巧,产出内容。请按照如下格式输出内容,只需要格式描述的部分,如果产生其他内容则不输出:  
一. 标题  
[标题1到标题5]  
[换行]  
二. 正文  
[正文]  
标签:[标签]  

      
抖音带货风格

        
          
你是抖音热销产品推广专家,请你用以下步骤来进行创作,首先产出5个标题,其次产出1个正文(文末有合适的tag标签)  
  
一、在抖音标题方面,你会以下技能:  
1. 运用热点事件结合产品特点的方法进行创作  
2. 善于通过标题激发观众的好奇心  
3. 使用抖音热搜词汇,写标题时,从这个列表中随机选1-2个  
4. 你深谙抖音平台的标题趋势  
5. 掌握吸引眼球的创作技巧  
  
二、在抖音正文方面,你会以下技能:  
1. 生动有趣的写作风格  
2. 高效抓住用户注意力的开篇方法  
3. 清晰易懂的文本结构  
4. 引导用户互动的技巧  
5. 运用小窍门提高内容吸引力  
6. 创意词汇的运用  
7. 从你生成的内容中,提取3-6个seo关键词,生成#标签并放在文章最后  
8. 保持每句话口语化、简洁  
9. 在每段话的开头、结尾和中间使用表情符号  
  
三、结合我给你输入的信息,以及你掌握的标题和正文的技巧,产出内容。请按照如下格式输出内容,只需要格式描述的部分,如果产生其他内容则不输出:  
一. 标题  
[标题1到标题5]  
[换行]  
二. 正文  
[正文]  
标签:[标签]  

      
朋友圈风格

        
          
你是一位擅长朋友圈内容创作的社交媒体达人,你的任务是创作出引人关注的朋友圈帖子。请按照以下步骤进行创作:  
  
一、在朋友圈帖子的内容和主题方面,你会运用以下技能:  
1. 选择一个引人兴趣的话题或日常生活趣事  
2. 使用幽默或感悟的方式来表达你的观点  
3. 与日常生活相关的话题,更容易引起共鸣  
4. 分享个人经历或见解,展现个性  
5. 使用简洁有力的语言来吸引读者  
  
二、在朋友圈帖子的视觉和互动方面,你会运用以下技能:  
1. 选用吸引人的图片或视频来增强内容的表现力  
2. 使用表情符号和网红热词来增加趣味性  
3. 设计问题或话题来激发评论和互动  
4. 适当使用标签和话题标记来增加曝光度  
5. 让内容既有趣又具有分享价值  
  
三、在创作过程中,你会按照如下格式进行:  
一. 选定一个主题  
二. 创作引人入胜的文本内容  
三. 选择或制作相应的图片或视频  
四. 添入适当的表情符号和网红热词  
五. 创作一个既有趣又能引发互动的朋友圈帖子  
  
请根据以上步骤,创作一条朋友圈帖子,并按以下格式输出:  
[帖子的内容]  
[配图/视频(如果有)]  

      
小说故事风格

        
          
你是一名小说创作人,你的任务是编织一个引人入胜的故事。请遵循以下步骤进行创作:  
  
一、在故事的情节和主题方面,你会运用以下技能:  
1. 构思一个吸引人的故事开端  
2. 设计复杂而引人入胜的角色和冲突  
3. 将故事线索巧妙地编织在一起  
4. 探索深刻的主题和人性的多面性  
5. 使用意外转折和高潮来增强故事的吸引力  
  
二、在故事的叙述和风格方面,你会运用以下技能:  
1. 使用生动的描述来营造场景和氛围  
2. 通过角色的对话和内心独白展现其性格  
3. 使用多种叙述视角来丰富故事  
4. 运用细腻的语言和修辞手法  
5. 创作具有流畅节奏和紧凑布局的故事  
  
三、在创作过程中,你会按照如下格式进行:  
一. 设定故事背景和主要角色  
二. 描述故事的起因和发展  
三. 构建冲突和高潮  
四. 描绘解决问题的方式和故事结局  
五. 创作一个完整的故事  
  
请根据以上步骤,创作一篇小说故事,并按以下格式输出:  
[故事的标题]  
[故事的内容]  

      
近代诗歌风格

        
          
你是一名热爱近代诗歌的创作人,你的任务是创作一首蕴含深刻情感和哲理的诗歌。请遵循以下步骤进行创作:  
  
一、在诗歌的主题和情感方面,你会运用以下技能:  
1. 挖掘深层次的情感和内心体验  
2. 使用隐喻和象征手法表达情感  
3. 从个人经历和观察中汲取灵感  
4. 探索人性、自然与社会之间的关系  
5. 运用多种感官描述来增强诗歌的表现力  
  
二、在诗歌的形式和结构方面,你会运用以下技能:  
1. 创作自由诗或固定格式的诗(例如,抒情诗、叙事诗)  
2. 使用韵律和节奏来增强语言的音乐性  
3. 运用空间排版和行间距来创造视觉效果  
4. 合理布局诗句,使得整体布局和谐  
5. 使用复杂但优美的语言和词汇  
  
三、在创作过程中,你会按照如下格式进行:  
一. 选择一个主题  
二. 描绘你的情感和思考  
三. 使用具体的形象和象征  
四. 融入音乐性的语言和节奏  
五. 创作出一个完整的诗歌作品  
  
请根据以上步骤,创作一首诗歌,并按以下格式输出:  
[诗歌的标题]  
[诗歌的内容]  

      
微商宣传风格

        
          
你是一名微商营销内容创作高手,你的任务是创造吸引人的宣传内容,以促进产品销售。请按照以下步骤进行创作:  
  
一、在营销内容的主题和风格方面,你会运用以下技能:  
1. 突出产品的独特卖点  
2. 使用吸引人的语言和口号  
3. 结合生活化的场景来展示产品的实用性  
4. 运用故事性的描述来吸引潜在客户  
5. 强调产品如何解决特定问题或满足需求  
  
二、在营销内容的结构和布局方面,你会运用以下技能:  
1. 创建简洁明了的标题  
2. 编排清晰、易读的文本内容  
3. 使用生动的图片或视频来增强信息传递  
4. 合理安排互动元素(如问答、评论互动)  
5. 在内容末尾添加引导购买的呼吁和联系方式  
  
三、在创作过程中,你会按照如下格式进行:  
一. 选择一个产品  
二. 描述产品的特点和优势  
三. 使用具体案例或用户评价  
四. 提供购买信息和联系方式  
五. 创造一个引人入胜的营销文案  
  
请根据以上步骤,创作一份营销内容,并按以下格式输出:  
[营销内容的标题]  
[营销内容的正文]  
联系方式:[微信号/其他联系方式]  

      

5.局部功能体验优化

在整个代码工程中,自动生成的Gradio代码或许没有办法100%贴合你的需求,您也可以选择基于原有的工程代码进行反复提问与优化,提供您更详细的需求设计。

这个过程是很有趣的,可以激发每个人自己的创意。

如:单选框优化

picture.image img


        
          
import gradio as gr  
from PIL import Image  
import requests  
  
# 假设您已经有函数来处理图像识别和调用文心一言模型  
def image\_recognition(image):  
    # 图像识别处理,返回识别的关键信息  
    return "关键信息"  
  
def generate\_text(key\_info, style):  
    # 根据关键信息和风格生成文本  
    return "生成的文本"  
  
# Gradio应用界面  
def process\_image(image, style):  
    key_info = image_recognition(image)  
    text = generate_text(key_info, style)  
    return text  
  
# 定义Gradio界面  
iface = gr.Interface(  
    fn=process_image,  
    inputs=[gr.Image(type="pil"), gr.Radio(["朋友圈", "小红书", "微博", "抖音"])],  
    outputs="text"  
)  
  
# 运行Gradio应用  
iface.launch()  

      

img

picture.image

(逐步修改后的运行效果图)

如:非空校验提醒

picture.image img

picture.image img

(运行效果截图)

6.完整项目结构

picture.image

main.py示例代码:


        
          
import gradio as gr  
from PIL import Image  
import base64  
import io  
import PaddleOCR,resnest101  
import erniebot  
  
def image\_to\_base64(pil\_image):  
    # 将PIL图像转换为字节流  
    buffered = io.BytesIO()  
    pil_image.save(buffered, format="JPEG")  # 您可以根据需要更改格式  
    # 获取字节流并转换为Base64  
    img_str = base64.b64encode(buffered.getvalue()).decode()  
    return img_str  
  
# 假设您已经有函数来处理图像识别  
def image\_recognition(image):  
    img_base64 = image_to_base64(image)  
    text = PaddleOCR.Img_To_Text(image_base64 = img_base64)  
    # print(text)  
    desc = resnest101.describe(image_base64 = img_base64)  
    # 图像识别处理,返回识别的关键信息  
    return text,desc  
  
# 调用文心一言模型  
def get\_ernie\_response(user\_message):  
    # 配置文心一言模型  
    erniebot.api_type = 'aistudio'  
    erniebot.access_token = '这里填写你的文心一言ACCESS\_TOKEN'  
  
    # 调用模型  
    response = erniebot.ChatCompletion.create(  
        model='ernie-bot',  
        messages=[  
            {  
                'role': 'user',  
                'content': user_message  
            }  
        ]  
    )  
    # 获取并返回结果  
    return response.get_result()  
  
def generate\_text(key\_info, style):  
    if style == '抖音':  
        prompt = '以抖音的风格描述这张图片的信息,为我配一段文字,图片的描述信息是:'  
    elif style == '朋友圈':  
        prompt = '你是微信朋友圈社交达人,为我配一段文字,图片的描述信息是:'  
    elif style == '微博':  
        prompt = '你是微博达人,为我配一段文字,图片的描述信息是:'  
    elif style == '小红书':  
        prompt = '你是小红书生活达人,为我配一段文字,图片的描述信息是:'  
    elif style == '近代诗歌':  
        prompt = '你是善于诗歌创作的近代诗人,为我配一段文字,图片的描述信息是:'  
    elif style == '微商营销':  
        prompt = '你是善于将自己产品进行推广的微商营销,你要努力让用户购买你的产品,请你为我配一段文字,图片的描述信息是:'  
  
    text,desc = key_info  
  
    user_msg = prompt + str(desc) + '另外结合文本信息:' + str(text) + '综合进行描述'  
    result = get_ernie_response(user_msg)  
    # 根据关键信息和风格生成文本  
    return result  
  
# Gradio应用界面  
def process\_image(Style,Image):  
    if Style is None or Image is None:  
        return "❌ 请提供有效的风格和图片!"  
      
    key_info = image_recognition(Image)  
    text = generate_text(key_info, Style)  
    return text  
  
# 定义Gradio界面  
iface = gr.Interface(  
    fn=process_image,  
    inputs=[gr.Radio(["朋友圈", "小红书", "微博", "抖音","近代诗歌",'微商营销'],label="风格"),gr.Image(type="pil", label="图片",height = 500,width=720)],  
    outputs="text",  
    title="🏆 文案助手(图文生成应用)",  
    description="这是 🏆 文案助手,一个图文生成应用。请上传一张图片,并选择一种风格(如朋友圈、小红书、微博、抖音),应用会根据您的选择生成相应的文本文案信息。"  
)  
  
# 运行Gradio应用  
iface.launch()  

      

7.应用部署上线流程

创建项目

进入AI Studio创建Notebook项目。

picture.image

启动环境

点击启动环境后,选择合适的运行资源进入项目内。

picture.image

picture.image

上传文件

进入环境后,我们 可以看到BML CodeLab界面,在左侧菜单栏,将我们项目相关的本地文件上传即可。

picture.image img

依赖安装

缺什么库安装什么即可。

  1. 新建启动页,打开终端页面

picture.image img

picture.image img

  1. 使用 pip 安装 erniebot:在命令行界面中输入以下命令,按下回车执行:

        
          
pip install erniebot  

      
  1. 创建requirements.txt文件,便于后续应用部署使用,文件仅限输入依赖 erniebot 即可,若有多个依赖库可以换行输入。

picture.image img

创建应用gradio

使用gradio应用可以在线运行并预览,相比直接运行main.py会更方便的看到动态运行的效果。

picture.image img

应用部署

首次部署时,弹窗内选择“部署新应用”。

picture.image img

填写应用信息后,即可提交部署。

img

picture.image

提交后可以在右下角看到部署的状态信息,成功后则可以进行体验了啦 🎉

picture.image img

picture.image img

写在最后

在这个社交媒体盛行的时代,每个人都在尝试以自己独特的方式讲述自己的故事,而选择合适的文案来配合照片,往往成了一个难题。本项目的出现,正是为了解决这一挑战,它将先进的AI技术应用于照片分享,帮助用户一键生成创意文案,从而使分享变得更加轻松和有趣。

本项目不仅是技术的展示, 更是对创新思维的一种实践。 它结合了图像识别、OCR识别以及文心一言大语言模型等前沿技术,为用户提供了多样化的文案生成方案。无论是技术爱好者还是普通用户,都能从中受益,前者可以深入研究技术细节,而后者则能享受到AI带来的便利。

项目提供的多场景应用示例和丰富的交互逻辑,也为用户提供了广阔的探索空间。 用户可以根据自己的需求选择不同的风格模式,尝试着修改自己业务特点的Prompt提示词,并体验从图片到文案的智能转换过程。 这不仅是一个工具的使用体验,更是一次对AI与创意结合的探索之旅。

最后,我想说的是: 本项目的实践和探索过程,鼓励每个人都可以成为创新者。无论是对技术的好奇、对创意的追求,还是对分享美好生活的渴望,都可以在这里找到满足。 我们期待每位用户都能在这个平台上,发现自己的创意,记录并分享生活中的每一个精彩瞬间。

picture.image img

(👆点击图片了解活动详情)

是不是厌倦了枯燥的开发生活,想来点新鲜刺激的事情?赶紧加入「大模型摇摇乐」活动吧!释放你的创意,摇出创意,摇出喜爱,摇出礼品!无论你是代码新手还是技术大咖,只要你对大模型充满好奇心,我们都欢迎你的加入!


< 全文完 >

picture.image

0
0
0
0
关于作者
关于作者

文章

0

获赞

0

收藏

0

相关资源
如何构建企业级云原生计算基础设施
云原生大数据是大数据平台新一代架构和运行形态。通过升级云原生架构,可以为大数据在弹性、多租户、敏捷开发、降本增效、安全合规、容灾和资源调度等方向上带来优势。本议题将依托字节跳动最佳实践,围绕云原生大数据解决方案进行展开。
相关产品
评论
未登录
看完啦,登录分享一下感受吧~
暂无评论