利用人工智能增强创意写作:介绍Cloudflare AI挑战Markdown编辑器

用AI赋能创意写作:介绍Cloudflare AI挑战Markdown编辑器 #

用AI赋能创意写作:介绍Cloudflare AI挑战Markdown编辑器的封面图片

Paweł Ciosek

这是为Cloudflare AI挑战 (opens new window)提交的内容。

我构建的内容 #

我构建了一个工具,可以让您在写作时获得AI的帮助。它本质上是一个基本的Markdown编辑器,但附带了一些AI工具!

  • AI助理 - 与AI聊天,询问任何问题,您可以选择首选模型
  • AI标题生成器 - 根据您的文本摘要生成标题建议
  • AI封面生成器 - 根据您的文本摘要生成封面建议

我自己尝试过,从我的文章中创建标题或封面非常方便!🤓

最重要的是,我希望避免创建一个用于生成文章的应用程序,而是鼓励人们自己写作。让我们成为飞行员,让AI作为副驾驶。

演示 #

应用链接 (opens new window)

图片描述 (opens new window)

我的代码 #

这是一个使用create-next-app (opens new window)创建的Next.js (opens new window)项目。

入门 #

首先,运行开发服务器:

npm run dev
# 或
yarn dev
# 或
pnpm dev
# 或
bun dev

以全屏模式退出全屏模式

使用浏览器打开http://localhost:3000 (opens new window)以查看结果。

您可以通过修改 app/page.tsx 文件来开始编辑页面。在您编辑文件时,页面会自动更新。

此项目使用 next/font (opens new window) 来自动优化和加载Inter,这是一个自定义的Google字体。

了解更多 #

要了解有关Next.js的更多信息,请查看以下资源:

您可以查看Next.js GitHub存储库 (opens new window) - 欢迎您的反馈和贡献!

在Vercel上部署 #

部署Next.js应用程序的最简单方法是使用 Vercel平台 (opens new window),由Next.js的创建者提供。

查看我们的Next.js部署文档 (opens new window)了解更多详情。

@cloudflare/next-on-pages #

@cloudflare/next-on-pages

旅程 #

这真的是一个充满乐趣的项目!🥳

AI应用程序中仍然有些魔法!🤓

我对Cloudflare发布这样一个出色功能印象深刻,使用模型非常简单。文档很清晰👏

我在Cloudflare Pages上部署了应用程序。通常我使用Vercel 😅,但我想试试。部署还算顺利,遇到了一些问题。在阅读文档后,我成功将Next.js部署到了Pages 👏 酷!😎

我的第一个问题是存储 💾,我的目标是允许用户保存他们的工作和聊天记录。起初我想使用supabase,但我注意到Cloudflare有一个KV!KV是一个简单的键值存储。非常适合这种应用程序!🤓

我的第二个问题是数据结构。我需要一个名为“project”的嵌套对象,并且KV是平面的 🌏 存储。解决方案是将其存储为JSON!😅 不是最佳方式,但足以开发应用程序!

我的第三个问题是为文章生成标题。我无法将整个文本传递给“文本生成”模型,因为它太大 🫣。解决方案是使用“摘要模型”作为代理!🤓

我引以为豪的地方

  • 我能够将整个项目托管在Cloudflare基础架构上!👏
  • 存储配置

我创建了接口:

export interface Storage<T> {
  get: (key: string) => Promise<T>;
  set: (key: string, value: string) => Promise<void>;
  remove: (key: string) => Promise<void>;
}

然后我实现了“KVStorage”并将其配置在配置文件中:

import { KVStorage } from "../util/storage/KVStorage";
import { Storage } from "../util/storage/Storage";

const cloudfrareKey = process.env.CLOUDDLARE_KV_API_KEY;
const cfAccountId = process.env.CLOUDFLARE_ACCOUNT_ID;
const cloudflareKvNamespaceId = process.env.CLOUDFLARE_KV_NAMESPACE_ID;

if (!cloudfrareKey || !cfAccountId || !cloudflareKvNamespaceId) {
  throw new Error("Cloudflare key or account ID is missing");
}

export const storage: Storage<string> = new KVStorage<string>(
  cfAccountId,
  cloudflareKvNamespaceId,
  cloudfrareKey
);

在应用程序中,我使用实现接口的存储对象,因此您可以轻松更改到其他存储!🥳

多个模型和/或三重任务类型

AI助手 #

基于文本生成模型,用户可以选择:

  • meta/llama-2-7b-chat-fp16
  • thebloke/openhermes-2.5-mistral-7b-awq
  • mistral/mistral-7b-instruct-v0.1
  • tiiuae/falcon-7b-instruct
  • google/gemma-2b-it-lora
  • nousresearch/hermes-2-pro-mistral-7b
  • thebloke/llama-2-13b-chat-awq
  • qwen/qwen1.5-14b-chat-awq

AI标题生成器 #

首先,我使用“bart-large-cnn”对文本进行摘要:

  • facebook/bart-large-cnn

然后我使用“nousresearch/hermes-2-pro-mistral-7b”来生成标题

AI封面生成器 #

首先,我使用“bart-large-cnn”对文本进行摘要:

  • facebook/bart-large-cnn

然后用户可以使用以下模型之一:

  • lykon/dreamshaper-8-lcm
  • runwayml/stable-diffusion-v1-5-img2img
  • runwayml/stable-diffusion-v1-5-inpainting
  • stabilityai/stable-diffusion-xl-base-1.0
  • bytedance/stable-diffusion-xl-lightning

阅读下一篇 #

[

anselm94个人资料图片

使用Cloudflare AI为孩子制作有趣、美丽、可打印的“故事卡” #

Merbin J Anselm - Apr 12

](https://dev.to/anselm94/fun-beautiful-printable-story-cards-for-kids-with-cloudflare-ai-3fbf)

[

abhilaksharora个人资料图片

一个功能强大的密码生成器NPM包 #

abhilaksh-arora - Apr 7

](https://dev.to/abhilaksharora/a-powerful-password-generator-npm-package-165d)

[

![doylecodes个人资料图片](https://media.dev.to/cdn-cgi/image/width=100,height=100,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F138063%2Ff 构建自己的作品集是否浪费时间?

Ryan Doyle - Apr 13

michaeltharrington profile image

你们最喜欢的404页面是什么? #

Michael Tharrington - Apr 12

](https://dev.to/michaeltharrington/what-are-yalls-favorite-404-pages-5fdd)