🐲龙年大吉——AIGC生成龙年春联🐲

简介: 🐲龙年大吉——AIGC生成龙年春联🐲

前言

时间过得好快,一眨眼2024年就来了。这两年对互联网冲击最大的想必就是大语言模型的AIGC能力了。从国外的GPT到国内的文心一言混元盘古等等,AIGC的出现大大的提升了我们的生产力,现在GPT逐渐也变成了我每天都会使用到的工具。

那趁着新年即将来临,我们今天就使用AIGC去生成春节必不可少的元素——春联。 66.png 链接

注册

对于大模型接口来说,我这边选择的是国产的讯飞星火大模型。选择它的原因绝对不是它现在可以领取免费的token,而是我觉得我们需要支持国产软件自主化(手动狗头),如果你不喜欢用这个也可以使用别的,思路都是一样的。

首先打开它的官网 xinghuo.xfyun.cn/sparkapi 注册一个账号,然后点击领取token就好了

领取到了之后就可以对着它的文档来使用API了。

构造鉴权API

我们是通过websocket去使用星火的大模型api,在连接之前则需要构造一个鉴权参数。这个参数主要是为了安全以及用户身份的鉴权吧,这里主要还是要根据它的文档里面的规则去构造,实现代码如下:

const getWebsocketUrl = () => {
  var apiKey = APIKey;
  var apiSecret = APISecret;
  var url = "wss://spark-api.xf-yun.com/v3.1/chat";
  var host = location.host;
  var date = new Date().toGMTString();
  var algorithm = "hmac-sha256";
  var headers = "host date request-line";
  var signatureOrigin = `host: ${host}\ndate: ${date}\nGET /v3.1/chat HTTP/1.1`;
  var signatureSha = CryptoJS.HmacSHA256(signatureOrigin, apiSecret);
  var signature = CryptoJS.enc.Base64.stringify(signatureSha);
  var authorizationOrigin = `api_key="${apiKey}", algorithm="${algorithm}", headers="${headers}", signature="${signature}"`;
  var authorization = btoa(authorizationOrigin);
  url = `${url}?authorization=${authorization}&date=${date}&host=${host}`;
  return url;
};


生成春联

在拿到上面的鉴权URL之后,我们就可以使用大模型的接口来生成春联了。

这段时间其实也用大模型接口去做了一些其他的事情,对于大模型来说,prompt可以算是比较核心的东西。一个精准的prompt可以让大模型更好的理解我们的意图,并给出更符合我们要求的答案。

我们先用antd来搭建一个简单的表单,对于主题或者上下联字数这种可以从表单中获取值然后动态拼接到prompt

68.png


下面就是我用来生成春联的一个prompt,仅供参考:

const prompt = `你是一个编写春联的专家,下面我将会给你一些要求,你帮我编写一幅春联,需要有美好寓意,要求如下:
  
      主题:${theme}
      上下联字数:${count}
      
      以json格式返回,返回示例如下:
      {
        "top":"知廉标五德",
        "bottom":"报午必三鸣",
        "banner":"新春",
      }
      `;


对于星火的API来说,使用的时候需要注意以下几点:

  • 回复是分段的,我们需要把结果拼起来
  • status2时表示最后一段
  • 回复完之后会断开连接

拿到了连接的URL,又有了prompt,那么接下来的代码实现逻辑就很清晰了,具体代码如下:

  const resultStr = useRef("");
  const [result, setResult] = useState({});
  const [loading, setLoading] = useState(false);
  const send = async () => {
    setLoading(true);
    const url = getWebsocketUrl();
    const instance = new WebSocket(url);
    instance.onopen = async () => {
      const { theme, count } = await form.validateFields();
      resultStr.current = "";
      const prompt = `你是一个编写春联的专家,下面我将会给你一些要求,你帮我编写一幅春联,需要有美好寓意,要求如下:
  
      主题:${theme}
      上下联字数:${count}
      
      以json格式返回,返回示例如下:
      {
        "top":"知廉标五德",
        "bottom":"报午必三鸣",
        "banner":"新春",
      }
      `;
      const params = {
        header: {
          app_id: APPID,
          uid: "jayliang",
        },
        parameter: {
          chat: {
            domain: "generalv3",
            temperature: 0.5,
            max_tokens: 1024,
          },
        },
        payload: {
          message: {
            text: [{ role: "user", content: prompt }],
          },
        },
      };
      instance.send(JSON.stringify(params));
    };
    instance.onmessage = (msg) => {
      const data = JSON.parse(msg.data);
      const status = data.payload.choices.status;
      const content = data.payload.choices.text[0].content;
      resultStr.current += content;
      if (status === 2) {
        setResult(JSON.parse(resultStr.current));
        setLoading(false);
      }
    };
  };

最后拿到的结果就是一个json,拿到这个json我们就可以很方便的渲染了。渲染的时候可以注意一些细节对于春联来说,文字的排版应该是从上往下的,所以可以加上这一段css

.contentItem {
    writing-mode: vertical-rl;
    text-orientation: mixed;
    white-space: nowrap;
    padding: 40px 0;
}

而且横批应该是从右到左读的,所以可以加上一个反转字符串:

result.banner.split("").reverse().join("")

那现在就来看一下整体的效果吧: 444.png 链接


优化字体

对于春联来说,一般会选择具有书法特色的字体,使整体春联更具艺术感和节庆氛围,比如行书、隶书、楷书、草书等等。那么我们就可以引入一些个性化的字体,让我们的春联更加的写实。

我是在这个字体网站下载了一个行书的字体,这里我只是用来个人使用演示,如有侵权,我会马上删除。

下载好之后在css中加入如下代码,就可以使用自定义字体:

@font-face {
  font-family: "xingshu";
  src: url("../../assets/ziti.ttf") format("truetype");
}

.container {
  font-family: "xingshu", sans-serif;
}

2222.png

下载了行书字体之后,我们的春联的样式就更加好看了~

最后

本文介绍了一种AIGC生成春联的方式,其实大模型的能力远不止这些,你可以调试好prompt让他帮你实现非常多的功能。如果你有别的想法,欢迎在评论区进行交流~看都看到这里了,点点关注点点赞吧~

最后给大家拜个早年,祝大家龙年行大运,身体健康,合家幸福~


目录
打赏
0
0
0
0
26
分享
相关文章
"FunAudioLLM震撼来袭!重塑语音交互新纪元,让每一次对话都充满魔法与情感共鸣!"
【8月更文挑战第11天】随着AI技术的发展,语音交互正经历革新。阿里巴巴推出的FunAudioLLM是一款先进的语音技术框架,包含SenseVoice和CosyVoice两大核心模型。SenseVoice擅长多语言语音识别与情感分析;CosyVoice则专精于自然语音生成,支持多语言、音色与情感控制。这两个模型结合,能实现在语音翻译、情绪对话等场景下的广泛应用,为人机交互带来更加真实与丰富的体验。通过开源社区的支持,FunAudioLLM将持续进化,成为语音技术领域的重要推手。
123 5
探索艺术的无限可能 —— AI绘画,让创意触手可及
现在就来体验AI绘画方案,让我们一起唤醒沉睡的艺术灵魂,释放你的创意小宇宙,让你的涂鸦和人像照,从此不再平凡!
AIGC遇上ChatGPT,互联网公司的创意设计师,还能做什么?
AIGC和ChatGPT为创意设计师开辟新路径。设计师借助AI生成初步设计,提高效率,保持创意主导。ChatGPT革新沟通体验,加速反馈与优化。Adobe国际认证成为设计师专业成长标志,确保技能更新与行业发展同步。在AI时代,设计师需融合技术,持续学习,以创新满足用户需求。
AIGC遇上ChatGPT,互联网公司的创意设计师,还能做什么?
AIGC技术大揭秘:它将如何彻底颠覆内容创作?未来世界的奇迹!
【8月更文挑战第8天】在信息爆炸的时代,人工智能生成内容(AIGC)正快速崛起,从自动撰写新闻到创作文学作品,其应用广泛。本文以自动编写体育新闻为例,介绍如何运用自然语言处理和生成技术实现。随着深度学习的进步,如GANs和VAEs的应用,AIGC能创造更真实多样的内容。未来,AIGC或将变革信息消费方式,拓展至视频、音频及虚拟现实领域,同时也会引发伦理和法律议题,需谨慎应对。
96 0
AIGC创作活动 | 智"绘"AI,使用PAI创造风格百变绘画助手
使用阿里云人工智能平台PAIx Free Prompt Editing图像编辑算法,开发个人AIGC绘图小助理,实现文本驱动的图像编辑功能单卡即可完成AIGC图片风格变化、背景变化和主体变化等功能。让我们一同开启这场旅程,为您的图像编辑添上无限可能性的翅膀吧。
AI 助力,歌词创作不再是难题
妙笔生词智能写歌词软件,借助AI技术,突破音乐创作难题。通过深度学习大量优秀歌词,理解词汇、句式和韵律,只需输入主题、风格和情感,即可快速生成创意歌词初稿,覆盖多种音乐风格。这款工具助你打破创作瓶颈,激发灵感,让歌词创作更高效、更具乐趣,聚焦音乐的情感表达。
AIGC在创意设计中的应用
**AIGC引领创意设计革命:AI生成内容借助先进算法,自动生成文本、图像、音乐等,改变设计师工作流程。AIGC虽无法复制人类情感深度,但在速度、效率上展现巨大潜力,应用于海报设计、虚拟角色制作、场景概念设计等领域,通过Adobe等认证提升设计师专业素养,共创设计新未来。**
AIGC时代的人类创造力,“卷”出创意设计新未来...
AIGC技术正重塑创意设计领域,为设计师提供高效工具,释放创造力,缩短设计周期。同时,Adobe国际认证成为设计师适应新时代,提升竞争力的关键。尽管技术带来挑战,但人类的创新思维和情感表达不可替代,AIGC更多的是设计行业的催化剂而非终结者。设计师需拥抱变化,通过认证学习新技能,抓住机遇,创造更有意义的作品。
谈谈内容创作中的UGC、PGC、AIGC,在创意设计领域的应用与进化
在数字化时代,内容创作经历了从UGC(用户生成内容)到PGC(专业生产内容),再到AIGC(人工智能生成内容)的转变。UGC打破了传统边界,让每个人都能参与创作,但质量参差不齐;PGC代表专业水准,提供高质量内容,但成本高且制作周期长;AIGC借助AI技术大幅提升效率,实现个性化定制,但面临版权、伦理和情感表达的挑战。Adobe国际认证等专业资格成为了衡量设计师能力的新标准,帮助设计师适应这一变革并引领创新。三种模式相互补充,共同推动创意设计领域不断发展。

热门文章

最新文章

AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等