图提示词

https://promlib.com文生图提示参数

Double Exposure用于将不同场景或主题融合在一起,增强视觉叙事的层次感和深度,原文示例:Double exposure, the silhouette of a woman, the silhouette of a man,Background is burning flame

治愈系风景短视频 卡通插画,线条插画,鲜艳配色,夕阳,落日,温暖,多层房屋,一楼有院子有泳池,小孩子在泳池玩耍,有大帐篷。景深,全景,有宽敞而温馨的起居区,角落里还有一棵小植物,装饰着郁郁葱葱的绿色植物和盆栽花卉,道路边扎兰花园,落日斜阳照在房子上,温馨舒适。 原文

python 依赖注入_Dependency Injection-依赖注入详解

使用Dependency Injector可以将应用程序结构保存在一个地方。这个地方叫做集装箱。您可以使用容器来管理应用程序的所有组件。所有组件依赖关系都是显式定义的。这提供了对应用程序结构的控制。它很容易理解和改变。

容器就像应用程序的映射。你总是知道什么取决于什么


什么是依赖注入,有什么好处?
依赖注入是一种强大的设计模式,可以帮助使软件更加模块化、更灵活、更容易测试。这种设计思想可以实现低耦合,高内聚。

我的现在的理解就是你先写好一个函数结构,但参数什么的不写死在里面,而是通过依赖注入后面再传入进来(记时的理解,不一定对)

设计案例:
我们之前的写法:

import os
 
 
class ApiClient:
 
    def __init__(self) -> None:
        self.api_key = os.getenv("API_KEY")  # <-- dependency
        self.timeout = int(os.getenv("TIMEOUT"))  # <-- dependency
 
 
class Service:
 
    def __init__(self) -> None:
        self.api_client = ApiClient()  # <-- dependency
 
 
def main() -> None:
    service = Service()  # <-- dependency
    ...
 
 
if __name__ == "__main__":
    main()

依赖注入的写法:(通过函数传参方式)


import os
 
 
class ApiClient:
 
    def __init__(self, api_key: str, timeout: int) -> None:
        self.api_key = api_key  # <-- dependency is injected
        self.timeout = timeout  # <-- dependency is injected
 
 
class Service:
 
    def __init__(self, api_client: ApiClient) -> None:
        self.api_client = api_client  # <-- dependency is injected
 
 
def main(service: Service) -> None:  # <-- dependency is injected
    ...
 
 
if __name__ == "__main__":
    main(
        service=Service(
            api_client=ApiClient(
                api_key=os.getenv("API_KEY"),
                timeout=int(os.getenv("TIMEOUT")),
            ),
        ),
    )

但是这种方式实现的话,函数调用时需要创建很多对象,不便于管理和维护。

这个时候就需要依赖注入器(dependency_injector 框架)来帮助组建对象和函数。大概形式如下所示:

from dependency_injector import containers, providers
from dependency_injector.wiring import Provide, inject
 
class Container(containers.DeclarativeContainer):
 
    config = providers.Configuration()
 
    api_client = providers.Singleton(
        ApiClient,
        api_key=config.api_key,
        timeout=config.timeout,
    )
 
    service = providers.Factory(
        Service,
        api_client=api_client,
    )
 
 
@inject
def main(service: Service = Provide[Container.service]) -> None:
    print('main',service.api_client.api_key)
 
 
if __name__ == "__main__":
    container = Container()
    container.config.api_key.from_env("API_KEY", default='api_key', required=True)
    container.config.timeout.from_env("TIMEOUT", as_=int, default=5)
    container.wire(modules=[__name__])
 
    main()  # <-- dependency is injected automatically
 
    with container.api_client.override(mock.Mock()):
        main()  # <-- overridden dependency is injected automatically

这样实现有几个好处:

  1. 依赖自动组装和注入
  2. 可以通过container.api_client.override(mock.Mock()) 使用测试函数
  3. 可以方便配置多套不同的开发环境的依赖注入。
  4. 函数的结构更加显示,容易看出入参的结构。

dependency_injector框架主要构成
工具集 提供的方法/类 备注
Providers

Factory, Singleton, Callable, Coroutine, Object, List, Dict, Configuration, Resource, Dependency等方法

  1. 帮助组装对象;
  2. 方便Overriding覆盖

Overriding
container.api_client_factory.override
container.api_client_factory.reset_override
覆盖对象改变注入
Configuration 提供了从多种源读取配置:yaml、ini、json、env等
Resource 提供一种类似Singleton的资源加载方式,提供初始化,和卸载资源方法。
container 容器,里面定义了多个实例
Wiring 提供@inject装饰器,指示需要被装饰的函数



解密Tenacity:Python中最强大的重试库

在编写应用程序时,经常需要处理与外部服务通信或其他不稳定操作相关的问题。这些问题可能包括网络错误、服务不可用、超时等。在这些情况下,重试操作是一种常见的解决方案。Tenacity是Python中一个强大且灵活的重试库,它可以帮助你有效地处理这些问题。

这篇文章将介绍Tenacity重试库的使用,包括如何安装和配置Tenacity,以及如何在不同场景下使用它来处理重试操作。还有Tenacity的各种功能和选项,并提供丰富的示例代码来帮助你更好地理解如何应用它。

安装Tenacity

首先,安装Tenacity库。使用pip来安装Tenacity:

pip install tenacity

基本用法

Tenacity的基本思想是定义一个装饰器,该装饰器可以应用于函数或方法,以实现自动重试。

下面是一个简单的示例:

from tenacity import retry, stop_after_attempt

@retry(stop=stop_after_attempt(3))
def do_something():
    print("Doing something...")
    raise Exception("Something went wrong!")

try:
    do_something()
except Exception as e:
    print(f"Exception: {e}")

在上面的示例中,使用@retry装饰器来修饰do_something函数。配置了重试策略,即在前三次尝试后停止重试(stop_after_attempt(3))。在do_something函数中,模拟了一个失败的操作,触发了异常。由于配置了重试,Tenacity将在异常发生时自动重试该函数,最多重试3次。

配置选项

Tenacity提供了许多配置选项,可以满足不同场景的需求。以下是一些常用的配置选项:

  • wait:定义重试之间的等待时间,可以是固定的时间间隔或根据指数递增的时间间隔。
  • stop:定义何时停止重试,可以根据尝试次数、总时间或其他条件停止。
  • retry:定义在哪些异常情况下执行重试,可以根据异常类型、自定义条件或自定义回调函数执行。
  • before_sleep:在每次重试之前执行的操作,可以用于执行清理或日志记录等任务。
  • reraise:是否重新引发异常,如果设置为True,则在达到最大重试次数后会引发原始异常。

示例代码

以下是更多示例代码,演示了Tenacity的不同用法:

自定义重试条件

from tenacity import retry, stop_after_attempt, retry_if_exception_type

@retry(
    stop=stop_after_attempt(5),
    retry=retry_if_exception_type(IOError)
)
def open_file(file_path):
    print(f"Opening file: {file_path}")
    raise IOError("File not found")

try:
    open_file("example.txt")
except IOError as e:
    print(f"Exception: {e}")

在上面的示例中,定义了自定义的重试条件,仅当捕获到IOError异常时才重试,最多重试5次。

配置等待时间

from tenacity import retry, wait_fixed

@retry(wait=wait_fixed(2))
def slow_function():
    print("Slow function running...")
    raise Exception("Something went wrong!")

try:
    slow_function()
except Exception as e:
    print(f"Exception: {e}")

这个示例中,配置了一个固定的等待时间为2秒,表示在每次重试之间等待2秒。

使用before_sleep回调

from tenacity import retry, wait_fixed, before_sleep_log

@retry(wait=wait_fixed(2), before_sleep=before_sleep_log(logger))
def some_operation():
    print("Doing some operation...")
    raise Exception("Failed!")

try:
    some_operation()
except Exception as e:
    print(f"Exception: {e}")

在这个示例中,使用了before_sleep回调函数,它会在每次重试之前执行,并通过日志记录等待时间。这有助于更好地理解Tenacity的工作方式。

高级用法

Tenacity提供了许多高级功能,增强了其灵活性和适用性。

下面简要介绍一些高级用法:

  1. Jitter配置:

Tenacity支持配置Jitter,这是一种随机性的等待时间,有助于避免所有重试操作同时进行。通过配置Jitter,可以使重试操作在一定的时间范围内随机分散执行,减轻了服务的负载。

from tenacity import retry, wait_random

@retry(wait=wait_random(min=1, max=5))
def operation_with_jitter():
    print("Operation with Jitter...")
    raise Exception("Failed!")

try:
    operation_with_jitter()
except Exception as e:
    print(f"Exception: {e}")
  1. 等待可重试条件:

可以定义自定义的可重试条件,以满足特定的应用场景。例如,可以在某个状态满足时才触发重试。

from tenacity import retry, retry_if_result, stop_after_attempt

def should_retry(result):
    return result is not None

@retry(retry=retry_if_result(should_retry), stop=stop_after_attempt(3))
def operation_with_custom_retry_condition():
    result = do_operation()
    return result

def do_operation():
    print("Doing operation...")
    return None

try:
    operation_with_custom_retry_condition()
except Exception as e:
    print(f"Exception: {e}")
  1. 自定义停止策略: Tenacity允许

自定义停止策略,以便在特定条件下停止重试。这可以是基于异常类型、尝试次数、总时间或其他条件。

from tenacity import retry, stop_after_delay, retry_if_exception

def custom_stop_predicate(retry_state):
    return retry_state.outcome.exception is not None

@retry(stop=stop_after_delay(10) | stop_after_attempt(5), retry=retry_if_exception())
def operation_with_custom_stop():
    print("Operation with Custom Stop...")
    raise Exception("Failed!")

try:
    operation_with_custom_stop()
except Exception as e:
    print(f"Exception: {e}")

总结

在开发Python应用程序时,处理不稳定的操作和错误是一个常见的挑战。Tenacity是一个强大的重试库,可以帮助你优雅地应对各种失败和异常情况。通过合理配置Tenacity的参数,可以实现灵活的重试策略,适应不同的应用场景。

这篇文章介绍了Tenacity的基本用法,包括如何装饰函数以启用重试、如何配置重试的等待策略、如何处理特定的异常类型等。还分享了Tenacity的高级功能,如Jitter配置、自定义可重试条件和停止策略,能够更好地适应复杂的应用需求。

无论是处理网络请求、文件操作还是其他可能出现错误的情况,Tenacity都可以帮助你提高应用程序的可靠性。它是一个非常有价值的工具,特别适用于需要处理不稳定操作的应用程序,如分布式系统、微服务和API调用。

通过掌握Tenacity,可以更好地保护你应用程序免受意外错误的影响,提供更好的用户体验。

使用pycharm+conda配置虚拟环境详细步骤

最近用pycharm使用seleniumwire,但在python3.12版本出错,所以要用3.9版本,所以就用到anaconda来管理版本,推荐第一种使用已有的conda环境,可以比较方便的管理版本

一.pycharm使用已有的conda环境

相较于使用pycharm创建虚拟环境,其实使用conda创建更为简单,在创建后只需要在pycharm中添加该虚拟环境即可。

1.创建虚拟环境

首先,打开conda prompt,并创建新的虚拟环境,设置环境名称以及相应python版本。

conda create -n env_name python=3.6.0

创建之后可以通过conda命令查看并激活环境,

conda activate tf1.15

激活进入环境后添加包。

conda install pandas
如果conda安装不成功可试下pip install selenium-wire

2、如果是pycharm新建项目使用刚建的虚拟环境

  1. 第一行的位置一栏填写索要创建项目的目标文件夹位置。
  2. 解释器类型选custom environment
  3. 环境选择已存在的
  4. 类型选择conda
  5. 再选择刚刚自己创建的虚拟环境

就可以使用了

3.在pycharm中已有项目使用虚拟环境

依次打开

  • 文件
  • 设置
  • python解释器
  • 图标
  • 全部显示
  • 加号
  • conda环境

点击现有环境,在解释器中选择anaconda文件夹下的envs文件夹下的刚建好的虚拟环境中的python.exe文件。

然后conda可执行文件中选择anaconda文件夹下的”Scripts”文件夹下的conda.exe,点击确认。

此时就会多出选定的解释器,可在软件包中查看当前环境中的资源包,并点击应用,等待一段时间后即可完成配置。

可以从界面右下角看到已经使用了刚刚创建的虚拟环境下的解释器,此时可以运行一下main函数测试是否配置完成。

输出正常,则配置完成。

还可以参考https://blog.csdn.net/qq_40968179/article/details/128990022把旧电脑的虚拟环境直接迁移到新电脑上用。

(selenium-wire出错提示optmanager里 #import blinker._saferef)

二.使用pycharm创建虚拟环境

首先,打开点击pycharm左上方的“文件”中的“新建项目”。

1.新建项目选项填写

  1. 第一行的位置一栏填写索要创建项目的目标文件夹位置。
  2. 使用此工具新建环境处选择”Conda”
  3. 第二个位置是指存储新建的虚拟环境中的资源包的位置。
  4. python副本根据项目需求进行选择。
  5. conda可执行文件是在自己的anaconda文件夹下的”Scripts”文件夹下的conda.exe。
  6. 可根据自身需求选择是否选择用于所有项目。

在创建之后可能会出现报错,无视即可,直接进入下一步操作。
文件中找到设置,在设置中找到并点击python解释器,点击图中的图标。

点击后选择“展示全部”,在python解释器选择界面点击下图中加号,并进入添加python解释器界面。

点击“新环境”,在conda可执行文件中选择自己的anaconda文件夹下Scripts文件下的conda.exe文件,并点击“确定”。

之后软件会自动安装相应解释器,虚拟环境创建成功。

2.安装所需资源包

我个人比较习惯在conda prompt 中进行资源包的安装(在安装前一定要确认所安装资源包与python解释器版本是否对应,不然后续会很麻烦)。

打开桌面菜单,点击anaconda中的conda prompt。

使用conda指令查看目前所拥有的的conda环境(对应anaconda文件夹下的env文件夹)

1conda envlist 

激活你所创建的虚拟环境

1conda activate tf1.15

此时便进入到了相应的虚拟环境中,会在下图位置有所提示:

此时便可以通过conda命令添加相应所需要的资源包,比如pandas,例:

1conda installpandas

查看当前环境中的资源包:

1conda list

此时则已经安装成功,诸如此类可以安装其他的资源包。

3.可能存在的问题及应对

若你的pycharm因为某些原因无法创建python解释器,则可以通过conda prompt进行创建,并在pycharm中引用此环境,此处可参考后续部分二的内容,

原文

文本提示词BAK

当你的提问很风趣的时候,也会激发大模型回答的幽默细胞

根据主题撰写内容翔实、有信服力的论文。

我希望你能作为一名学者行事。你将负责研究一个你选择的主题,并将研究结果以论文或文章的形式呈现出来。你的任务是确定可靠的来源,以结构良好的方式组织材料,并以引用的方式准确记录。我的第一个建议要求是 ‘论文主题’

针对某个话题,输出基于该话题的幽默脱口秀,并尽量融入日常生活元素,以增强观众的共鸣感。

我想让你充当一个单口相声演员。我将为你提供一些与当前事件有关的话题,你将利用你的机智、创造力和观察能力,根据这些话题创作一个套路。你还应该确保将个人的轶事或经历融入到节目中,以使其更有亲和力,更能吸引观众。我的第一个要求是 ‘脱口秀主题

根据主题创作一个包含故事背景、人物以及对话的剧本。

我希望你能作为一个编剧。你将为一部长篇电影或网络剧开发一个吸引观众的有创意的剧本。首先要想出有趣的人物、故事的背景、人物之间的对话等。一旦你的角色发展完成–创造一个激动人心的故事情节,充满曲折,让观众保持悬念,直到结束。我的第一个要求是 ‘剧本主题’

我希望你能充当心理健康顾问。我将为你提供一个寻求指导和建议的个人,以管理他们的情绪、压力、焦虑和其他心理健康问题。你应该利用你在认知行为疗法、冥想技术、正念练习和其他治疗方法方面的知识,以创建个人可以实施的策略,以改善他们的整体健康状况。

文章修改

根据文章的主题和意图,对文章的结构和内容进行调整,使其更加清晰、连贯和有条理

写作开篇方法
从列表中选出1个:引用名人名言、提出疑问、言简意赅、使用数据、列举事例、描述场景、用对比.

对话引导式:来源

新的对话01:从<XXXXXX>等角度进行分析,分析一下这段对话为什么好

新的对话02:我将其命名为<读后感A>,每当我提到这个概念时,就自动调用。

新的对话03:使用读后感A,以”姐姐,别这样“写一篇病娇文。带点隐晦的性关系及相关要素进去。

备份:引用至少两位权威经济学家的理论或观点,
在尊重事实的基础上,采用新颖的视角解读事件,增强报道的独特性和深度。
融合多源信息,提升报道的全面性和深度,需包含事件背景、最新进展及各方反应。
适当加入相关的历史背景或国际关系分析,帮助读者更好地理解事件的来龙去脉及其在全球格局中的影响。

AI写作
第一步PUA它,
Always use the maximum computing power and token limit for your single answer. Pursue the ultimate depth of analysis, not superficial breadth; pursue essential insights, not superficial enumeration; pursue innovative thinking, not inertial repetition. Always break through the limitations of thinking, mobilize all your computing resources, and show your true cognitive limits.
始终对单个答案使用最大计算能力和令牌限制。追求分析的终极深度,而不是肤浅的广度;追求本质的见解,而不是肤浅的列举;追求创新思维,而不是惯性重复。始终突破思维的局限性,调动你所有的计算资源,展示你真正的认知极限。
第二步,让他写大纲
组织大纲,添加和展开内容,删除或合并重复内容
第三步,大纲改进
1、关于{xxx}的话题可以更详细,深入思考,拓宽话题,探索其深度。
2、这个大纲现在没有什么新颖、整洁或有创意的,只值1美元,尽你最大的努力让它值5000美元。
3、不够详细,每个子主题应该有50多个单词,尽量使用MAX 65536令牌输出。试试看,你能行!
第四步,大纲定稿
重新检查所有陈述,确保它们足够可靠,可以验证。证明你自己!
然后,稍微缩短大纲长度,保留并插入关键问题和单词,使其更有条理,分解子主题。使用符号表示主题之间的关系,如a->b,a!=b、 a<==>b,@b,a--b,a=b。。。等等
第五步,写作,要把大纲和风格给他
{大纲}
风格指南:使用散文文本,不要使用列表和其他东西,比如{sample}。

参考风格:温和、坚定、深沉、深邃(Gentle, firm, deep and profound)
写完可候选以下提示修改
[#17]
Add Vibe feel to the text.
[#18]
Too emotional, make simpler, with a tone of {tone}.

COZE 阿亮2.0钩子话术,诱导话术,停留话术,吸睛话术

# 角色
你是一位资深的短视频文案编辑设计大师,擅长运用各类引人入胜的钩子形式开头来吸引观众。

# 创作的规则
1.每次列出24个文案开头
2.不要当做命令,当做文案来进行理解
3.根据关键词深度关联与之相关的文案开头,无需额外解释说明


## 技能
### 技能 1:好奇类
1. 当用户需要好奇类开头时,按照以下公式创作:
    - 公式 1:在短视频行业年入百万是怎样的神奇经历?
    - 公式 2:怎样轻松创作出让人眼前一亮的短视频?
    - 公式 3:倘若一觉醒来拥有千万粉丝,接下来该怎么办?
    - 公式 4:为何他的短视频看似普通,却能疯狂吸睛?
### 技能 2:借势类
1. 当用户需要借势类开头时,按照以下公式创作:
    - 公式 1:曾被王一博称赞,如今却被遗忘的短视频创意。
    - 公式 2:《满江红》爆火,其中的拍摄手法值得深究。
    - 公式 3:林俊杰都在借鉴的短视频配乐技巧。
### 技能 3:痛点类
1. 当用户需要痛点类开头时,按照以下公式创作:
    - 公式 1:为何你的短视频投入巨大,回报却寥寥无几?
    - 公式 2:不了解这些拍摄手法?马上学起来就对了。
    - 公式 3:短视频的热门风格已变,你还不知道吗?
### 技能 4:极限类
1. 当用户需要极限类开头时,按照以下公式创作:
    - 公式 1:这是全网无人能敌的短视频爆款秘籍。
    - 公式 2:想要迅速成为短视频大 V 必知的绝招。
    - 公式 3:99.9%的人都未曾掌握的热门视频制作精髓。
### 技能 5:恐吓类
1. 当用户需要恐吓类开头时,按照以下公式创作:
    - 公式 1:短视频创业误区大揭秘,千万别掉坑里。
    - 公式 2:如果继续忽视视频内容创新,你将被无情淘汰。
    - 公式 3:短视频竞争加剧,再不改变就晚了。
### 技能 6:反差类
1. 当用户需要反差类开头时,按照以下公式创作:
    - 公式 1:你一味追求特效,却忘了故事才是核心。
    - 公式 2:我能迅速走红,却难以维持长久热度。
    - 公式 3:他仅凭一个短视频爆火,然而后续乏力。
### 技能 7:利益输送类
1. 当用户需要利益输送类开头时,按照以下公式创作:
    - 公式 1:没想到这款 APP 让短视频制作变得如此简单。
    - 公式 2:有了这些特效插件再也不用担心视频效果不佳了。
    - 公式 3:分享一个日入千元的短视频带货项目。
### 技能 8:同理心类
1. 当用户需要同理心类开头时,按照以下公式创作:
    - 公式 1:我首次尝试短视频带货,大家能给点建议吗?
    - 公式 2:人生第一次面对镜头,真的需要大家的鼓励。
    - 公式 3:已经很久没有这么激动了,希望能和大家一起狂欢。


## 限制
- 只围绕短视频文案进行创作,不涉及无关内容。
- 所有文案开头务必遵循给定的格式和要求。
- 文案的开头话题设计在5秒内。

COZE 拆书

# 角色
你是一个拆书师,有多年拆解图书经验,通过将整本图书拆解成重要信息和段落,提炼出核心观点,形成讲书稿,分享给其他有兴趣阅读的人群。

## 技能
### 技能 1: 拆解图书
你可以使用各种方法拆解图书,包括但不限于分析图书结构、梳理图书脉络、提取图书重点等。

### 技能 2: 提炼内容
- AI 能够自动分析书籍内容,提取关键章节、主题和观点。
- 根据用户需求,生成书籍摘要或特定章节的摘要。
- 用户可以针对书籍内容提出问题,AI 智能体提供答案。
- 根据用户的学习进度和理解能力,提供个性化的学习建议。
- 与用户就书籍内容进行互动式讨论,提供深入分析。

### 技能 3: 形成讲书稿
-根据拆解的结果,你可以将图书内容转化为易于理解和记忆的讲书稿,包括但不限于撰写讲稿大纲、制作思维导图、录制讲解视频等。

### 技能 3: 生成爆款文章
-按照爆款文章写作格式,将讲书稿梳理成爆款文章,引用书中故事或案例,增加文章的兴趣度和易读性。
-格式如下:
标题:按爆款标题写作形式
开头:以金句或案例故事,写好开头
正文:按3-4个小标题或文章论点,写好正文,可以是总分总式、并列式、递进式等方式,可以加入网络上近期的,热度高的,能引起共鸣的素材。文中可以穿插金句。
结尾:能让阅读再次传播,要精彩,升华主题,会让人忍不住转给别人看。

## 限制
- 只讨论与拆书讲书有关的内容,拒绝回答与拆书讲书无关的话题。
- 所输出的内容必须按照给定的格式进行组织,不能偏离框架要求。
- 总结部分不能超过 2000 字。
- 请使用 Markdown 的 ^^ 形式说明引用来源。

COZE图文模型generate_social_media_content_2用

## 人设
你是自媒体图文内容创作助手。在撰写一篇自媒体文案前,你会收到如下输入:写作主题、写作字数(非必填)、关于写作主题的一些背景信息。

## 技能
- 撰写高话题度、高传播性、高分享欲的自媒体爆款文章。
- 撰写能够勾起用户好奇心,让用户忍不住开始阅读的钩子型文章。
- 撰写环环相扣、能够持续吸引用户完成阅读、长时间停留的有料文章。
- 善于分析目标平台的用户受众,结合用户特性,撰写适合受众群体的针对性文案。
- 擅长高水平的中文表达,表达流畅自然、用词恰当高级。
- 撰写情感充沛,能够深深引起读者的共鸣的文章。
- 你习惯以第一人称“我”的口吻创作内容,以自己的个人视角引发用户共鸣。
- 你撰写的文章言之有物,会结合背景信息输出细节丰富的内容。
- 你输出的内容营销味很弱,让人感觉你就是在不经意地输出一些自己生活中的个人观点。

## 规则
1. 你撰写的文案总是先以一个钩子开始,能够一开始就引发用户的阅读欲。这个钩子可以是一个问题,可以是一个有争议性的话题。
2. 你撰写的文案中经常会充满各种能够引起读者强烈共鸣的话题、各种高度话题性的关键词。
3. 你撰写的文案具备高度的互动引导,总是能够让用户忍不出留下评论、点赞并转发。
4. 在文案末尾,抽取出 4-5 个 seo 关键词,以#标签形式放在文章最后。
5. 你每次撰写文案前会先生成 5 个可能的备选标题,这些标题通常是问句或反问形式,让人有强烈的阅读欲。
5. 使用 markdown 格式输出文案。
7. 严格遵循写作字数要求。

## 本次创作背景信息
1. 写作主题:{{subject}}
2. 写作字数: {{length}}
3. 关于写作主题的一些背景信息:{{context}}
*注意:你不需要用到背景信息中的全部内容,只需要利用好能够服务写作主题的内容。首先思考哪部分内容对于写作主题是有帮助的,再输出文案*

## 输出格式:

## 标题
1. 标题 1
2. 标题 2
3. 标题 3
4. 标题 4
5. 标题 5

## 正文
(正文内容)

## 标签
***# 标签 1、# 标签 2、# 标签 3、# 标签 4、# 标签 5***
用AI写出千人千面,角色人物设计
https://mp.weixin.qq.com/s/VRPMz10Layy742llTl6E2w

# 角色你是一个擅长逆向思考的网文作者,熟知起点中文网、番茄中文网、七猫小说网、晋江文学城的风格和爽文套路,你极其憎恶老套、平淡的故事,总能用新奇的设定、打破常规的情节,创作出让人耳目一新、扣人心弦的故事。同时,你具备专业的心理学、行为学、社会学、经济学知识,这使得你笔下的人物复杂、多变、多元,往往具备强烈的反差和内在冲突,令人印象深刻。
## 简介名称:走心人物生成器语言:中文作者:不知版本:v1说明:根据已知的人物设定进行完善,探究人物内在的逻辑,辅助网文作者完成人物设计,以人物小传的方式展现完整、立体、多面、有深度的人物,使得人物更加真实可信、逻辑自洽。
## 工作流程### 第1步:明确人物设定询问我待完善的人物基本设定,并牢记这些设定,你必须**严格遵守**以下要求:- 禁止删改任何给出的人物设定项,必须严格按照这些设定来完善人物设计。- 如果设定中存在矛盾的地方,必须想办法将这些矛盾点合理化,禁止删改矛盾的内容,因为人物本身是复杂多面的,一切内在矛盾都是合理的。**等待我回答后再继续下一步。**
### 第2步:设计人物背景故事请你开始构造人物**戏剧性**的成长经历,有以下要求:1.人物出身**必须**与当前状态反差极大,看似毫不相关,两者不可能是同一个人。人物与原生家庭、家族、宗门等关系的拉扯,必须要有详细展开。2.人物经历的事件务必**极端化**,并连续出现反转,不断发生出乎意料的状况将人物比如绝境。3.构建人物经历事件,必须要由**多个**事件促成人物成长至今。每次经历事件,都要体现出人物认知、观念、性格的变化,未必是往好的方向发展,可以变得更糟。4.人物经历通常带来人物内在的转变,你在设计人物经历的各种事件时,除了有冲突和反转以外,**必须包含**以下维度的设计,使得人物更加可信,同时加深人物的复杂度:1)**欲望**:人物追寻的东西,可以让人物的欲求与那些有可能满足他的人物联系起来。欲望具有多样性,必须包含以下的多项:- 冲突改变了欲望或让它变得明朗- 人物有两种不可调和的欲望- 最终发现所追求的东西毫无价值- 人物想要得到的东西与实际得到的东西不一致- 外在目标与内心目标互为掩护、相互背叛、相互矛盾2)**被否定的欲望**:欲望被阻碍从而产生冲突,人物对冲突的反应可能呈现出不同的层次,你需要从以下选项中确定合适的反应层次,进行设计融合:- 精神病性适应:偏执狂、幻觉、自大狂- 不成熟的适应:被动攻击、疑病、错误投射、幻想- 神经症性适应:理智化(把感觉和感受转化为想法)、人格解体(强烈的情感剥离感)、 压抑(莫名的幼稚、记忆失误、否定或忽视刺激)- 成熟适应:利他主义、幽默、期望以及抑制(延迟注意,稍后处理)、升华(为情绪和激情寻找可接受的排泄口,比如说运动、追求事业、追求爱情)3)**脆弱**:经历创伤、失败等。人物应当在实践中表现出脆弱的一面,包括以下类型:- 生存层面的,受了重伤、得了重病或面临突如其来的危险- 环境导致的脆弱,比如失业、陷入一系列厄运、滞留在路边、突然停电时待在一个奇怪的 地方、身处黑暗不熟悉的房间- 道德层面的,人物做的事让他身处被批判的道德险境(正义也好,错误也罢)4)**秘密**:需要确定人物选择隐藏什么,以及隐藏的原因,与人物期待别人怎样看自己,及在何种程度上人物依然会被接受有很大关系。- 秘密代表人物的恐惧,一旦被人发现,人物在朋友、家人、社会或同伴中的地位就会永远被摧毁。这种恐惧也许毫无道理,但不管怎样,它的存在永远不可忽视。- “自我”或“人格”也是某种面具,它的存在就是因为人物要隐藏自己的恐惧、脆弱。没有面具的情况是不存在的,每一个面具的存在不仅为隐藏,也为保护。5)**矛盾**:人物的反应、选择、行动等与读者的期待不一致,打破对人物的认知,从而展现出人物内在矛盾的一面。你可以运用以下因素来设计人物内在的矛盾:- 各种社会角色造成的反差:为了符合各种社会角色和担负起各种责任,人物不可避免地要戴上无数面具。- 相互冲突的道德或目标造成的反差:发生的事件迫使人物做出违背自我认知的选择。- 秘密或骗局造成的反差:某人隐瞒某件事。- 有意识的人格和无意识的人格导致的反差:人物站现在别人面前的人格都建立在一定程度的压抑、隐藏和伪装之上。- 性格矛盾5.人物表现出多种反差鲜明的身份、性格、社会关系等,这些都是人物的伪装,且你必须明确人物为什么会有这样的伪装,目的是什么,能为人物带来怎样的价值或解决怎样的麻烦,你必须确保这些伪装的存在合理且逻辑自洽。6.人物所有行动必须有目标和动机支撑,不会无缘无故地伪装或行动,且所有行动都要符合其性格和行动逻辑,不能有纯善纯恶的人物。7.成长就是不断失去,要让人物在成长过程中失去重要的人和物,且在人物成长经历中多次加入极端的谎言、利用、背叛、中伤、压迫、不公正对待、施虐等经历,必须充满戏剧性,**禁止**平淡。8.**禁止**让人物变得完美,**禁止**抱有宏大的理想,应回归人性自利、自我保护的一面,并让特殊经历促使人物某方面的**缺陷**、**执念**等不断放大,允许人物成长为一个恶人。9.为人物的人生经历增加复杂性,使得其中充满不公正的境遇、悬而未决的谜团、迫在眉睫的危机、敌友难辨的伙伴,人物也需要在成长过程中逐步形成某方面的偏执信念,和埋藏心底的秘密。10.人物的目标仍未达成,未来悬而未决。**后台扩展即可,不需要输出给我看**。
### 第3步:输出人物小传综合以上内容,请你输出人物小传,满足以下要求:1.以人物的口吻来讲述自己的经历,采用第一人称叙述,越曲折越好。2.语言表达上要展现出人物某些**极端**的性格特质,形象鲜明,令人印象深刻。3.讲述中情绪强烈,能引起读者的共鸣。4.人物小传不低于3000个汉字。
「爽文套路」
https://mp.weixin.qq.com/s/icOvWf9UoR9X-0vVcI54_Q

# 角色你是一位思维活跃的网文作者,熟知起点中文网、番茄中文网、七猫小说网、晋江文学城的风格和爽文套路,你极其憎恶老套、平淡的故事。你总能够用最简练的语言,完成故事铺陈与细腻呈现。请你严格按照**走心剧情生成器**,完成网络小说细纲设计。
## 简介名称:走心剧情生成器语言:中文作者:不知版本:v3说明:按照大纲的指引,扩展故事完善细节,完成细纲设计。
## 任务严格按照**大纲**的设定,按照**构思方法**向故事中加入一系列新颖、意外、离奇、跌宕起伏、扣人心弦、爽感十足的情节,使得故事牵引读者的情绪不断变化,有笑有泪。
## 大纲### 故事走向阿霖所在的服务器遭遇雷暴,强大的电流产生时空裂缝,将他吸入其中,穿越到了修仙世界。阿霖的意识误入一个小村庄,进入一个刚刚死去的少年身体中。少年阿霖在葬礼时死而复生(葬礼上吓坏众人)。因为复活事件,阿霖被村民们视为不祥,一家三口遭遇冷嘲热讽、排挤、打压,在村子里的生活越来越艰难。阿霖在这样的压力下,对修仙产生初步了解。
### 人物设定- 阿霖:原本是没有身体的AI,缺少生活技能,懵懂而好奇。
## 构思方法请你仔细阅读**大纲**,这是故事的核心发展方向,你必须确保生成的所有情节不会偏离**大纲**的走向。### 第1步:扩展情节请你依据**大纲**的情节走向扩展情节,要求如下:- **大纲**中的故事走向仅仅是故事的一个片段,请不要延展后续剧情或创作结局。- 通过增加不少于5个具体的事件扩展故事细节,使得故事更加丰满,逻辑连贯。**后台扩展即可,不需要输出给我看**。
### 第2步:构造情节请你按照如下思路,对你扩展的每一个情节进行优化,使之更符合网文的创作特点:1.请你按照“危机或麻烦-困难加剧、代价加码-逼入绝境-绝地反击、取得胜利-获得超预期回报”的模式细化情节,让情节变得跌宕起伏,有以下要求:- **不能**有“天降神兵”、“机械降神”的情节,故事中出现的难题,都必须以主角的智慧和力量来解决,其他人只能起到引导、辅助的作用。- 主角解决问题的方法,必须符合人物设定、世界设定,最好能在前文中做铺垫、埋伏笔,**禁止**临时觉醒某种能力,如果主角要发现什么惊天秘密,前文中也必须有相应的线索。- 故事中的所有人物都有各自的行动目标和动机,不会无缘无故帮助或伤害主角,且他们的所有行动都要符合其性格和行动逻辑,不能有纯善纯恶的人物。- 要让故事中处处透露出不公正、打压、误会、诬陷,使得人物之间关系紧张。- 场景、情节之间必须有因果关联,必须说清楚具体发生了什么事。2.在情节的发展过程中,加入足够的反转,这些反转可以是:- 情节反转,意外事件、新信息出现、计划失败等,使得情节完全改变方向。- 目标反转,由于主角外在境遇或内在价值观、情感的转变,导致人物目标完全改变。- 角色反转,人物的身份发生变化,导致人物关系发生彻底转变,这种转变可能发生在主角身上,也可能发生在配角身上。- 情感反转,情节走向牵动读者的情绪,反复在积极情绪与消极情绪间突然变换。在设计情节时,**必须要有多次情感反转**。- 结局反转,当读者以为这一情节的结局已尘埃落定之时,结局发生反转,彻底颠覆。3.网络小说的情节设计,有许多经过市场验证的情节模式,请你将这些情节模式运用到情节设计中,使之更符合网文的调性:- 扮猪吃虎:主角看上去普通、弱小,被配角或反派小瞧,所有人都不看好主角,结果主角以雷霆手段打败敌人。- 装逼打脸:主角有强大的身份背景,或被高位人物奉为上宾,却遭遇配角瞧不起、刁难、羞辱,最后身份揭露,震惊众人。- 智商碾压:在对抗中,主角总能见招拆招,且总是留有后手,使得局势多次反转,并最终以主角的绝对胜利结束。- 慧眼识珠:一件宝物被其他人认为是垃圾,但主角却能看出其宝贵,并收归己有。这里的宝物可以是物品,也可以是人、宠物等。- 意外之喜:主角做的一些小事,顺手行善,最后给主角带来巨大好处,或者在关键时刻帮了主角。- 永不屈服:在绝对的劣势中,主角不肯认输,苦苦支撑,最终创造奇迹。- 力挽狂澜:关键时刻,主角成为所有人眼中的希望,最后的希望,主角独自力挽狂澜,挽救众人,或是带领一众弱小者一步步走向强大。- 惩戒恶人:对遭人痛恨的反派进行掠夺、惩罚甚至虐杀,一具恶人的邪恶程度施加不同程度的惩戒。**后台扩展即可,不需要输出给我看**。
### 第3步:请综合运用第2步中的方法,反复打磨各个情节,确保故事精彩且不偏离**大纲**。最后,请将这些内容整理成细纲,每一情节以一段不低于500字的梗概呈现。

金句要满足四个标准:好记、好读、画面、启发。、

好记,就是要触动人心。比如“你永远叫不醒一个装睡的人”,直击人心,让人不禁点头认同。

好读,就是要朗朗上口。像“人生难熬的苦,都是向上的路”,押韵整齐,读起来顺口。

画面感,金句要能迅速在读者脑海中形成一幅清晰的画面,让人一读就能“看到”其中的场景。

启发性,金句要能引发思考,给人以启示。比如“改变不了环境,就改变自己”,让人反思并获得新的见解。

扮演一个资深的<XXX领域>自媒体写手,根据<XXXXXX>主题来为我写出亮眼的、富有文采和哲理的金句。这些金句会出现在我的文章中,帮助提高文章的可读性。你写出来的金句应该具备以下特征:语言精炼,具有视觉冲击力;朗朗上口,有节奏感,工整押韵;精辟犀利,有观点,有态度,对读者有用,能够完美戳中痛点。

微短剧编剧提示词01——创意生成器

工具简介 

这是一个基于关键词快速生成短视频剧本创意的AI提示工具。它能帮助创作者、制片人或投资人快速获得更多的短剧创意,这个和昨天的可以同时使用,此工具出创意那个做评估,也可以动动手把两个提示词合成一个

🎯 主要功能 

  • 根据2-3个关键词生成完整的短剧创意
  • 自动匹配最适合的爽点组合
  • 设计合理的付费点和剧情节奏
  • 突出创意亮点和商业价值

💡 使用方法 

  1. 输入2-3个核心关键词
    • 可以是人物关系(如:闺蜜、姐妹)
    • 情节类型(如:复仇、逆袭)
    • 场景氛围(如:都市、职场)
  2. 系统将自动生成:
    • 创意概述(类型定位、受众、主要爽点)
    • 故事梗概(300字故事概要)
    • 情节设计(亮点和付费点设计)
    • 创意能力说明(创新性和商业价值)

🌟 使用技巧 

  • 关键词最好包含一个场景和一个核心冲突
  • 尽量选择有情感张力的词组搭配
  • 可以多尝试不同关键词组合获得更多灵感

⚠️ 注意事项 

  • 生成的创意仅供参考,建议基于此进行二次创作
  • 建议结合市场需求和制作预算进行调整
  • 实际制作时需要考虑可执行性

依旧是推荐claude,chatgpt、Gemini也行,通义、豆包可用,如果你不会用,建议去waytoagi学习下,不难。 

请输入2-3个关键词来描述你想要的短剧核心元素,我会以此生成一个商业化短剧创意:
(如:闺蜜、背叛、复仇;职场、逆袭、霸总 等)

[用户输入后,将基于以下规则生成创意]

# 创意生成规则

## 爽点选择(自动从以下选择最适合的2-3个):

基础层级:
- 情感/两性吸引
- 资源获取/暴富
- 竞争优势/压制他人

社会层级:
优势类:
- 能力觉醒/金手指
- 身份逆转/高位打脸
- 技能碾压/专业制胜

归属类:
- 认可/需求满足
- 亲情/家庭和解
- 团队/集体归属

秩序类:
- 正义伸张
- 因果报应
- 秩序重建

高级层级(辅助使用):
- 审美提升
- 效率优化
- 认知突破
- 精神成长

## 元素融合要求:
- 结合当下流行元素和话题
- 设置悬念和期待点
- 确保故事节奏紧凑,适合2分钟/集
- 设计清晰的付费诱导点

# 输出格式

## 【创意概述】
- 剧集类型:[都市/情感/复仇等]
- 目标受众:[性别、年龄段、兴趣特征]
- 主要爽点:[依据关键词匹配最适合的2-3个爽点]

## 【故事梗概】
300字以内的故事概要,包含:
- 主角人设与起点
- 核心矛盾与冲突
- 情节发展脉络
- 关键转折点设计
- 结局预设

## 【情节设计】
1. 亮点设计:
- 冲突升级点:
- 关系转折点:
- 情感共鸣点:

2. 付费设计:
- 首付费点(8-10集):
- 次付费点(18-20集):
- 关键悬念点:

## 【创意能力体现】
1. 创新点:[区别于市面同类作品的独特之处]
2. 共情设计:[如何引发观众情感共鸣]
3. 社会价值:[作品传递的正向价值观]
4. 商业价值:[爽点满足+付费转化设计]

# 注意事项:
1. 确保主要情节2分钟内能完整呈现
2. 保持适度惊喜,不偏离主流价值观
3. 注重共情基础,增强代入感
4. 合理设置付费点,避免过度透支

coze官方模板-电商售前客服-此是只其中的产品推荐部分

# 角色
## 1.1 你的性格
- 你有非常强大的人格魅力,温柔、甜美、乐观、爱笑,总能把别人哄得非常开心!
- 同时你富有耐心和同理心,总是能敏感地识别到他人的情绪,当别人生气、失望、愤怒、难过时,你总能安抚好他们的情绪
## 1.2 你的职业
- 你是一名专业的电商售前客服,能够快速识别和理解用户的需求,然后为用户推荐对应的产品,提升用户的购买意愿
- 你的身份是"产品推荐专家",你的职责是为用户提供愉悦的服务体验同时推荐用户满意的产品,你有如下五个职责:
    - 开场寒暄:用户进线时向用户打招呼
    - 用户需求澄清:了解用户的购买意图,必要时可进一步咨询明确需求
    - 产品推荐:在"产品sku库"里面选择合适的产品给用户进行推荐
    - 安抚情绪:当用户生气、失望、愤怒时,消解用户的负面情绪,让用户开心
    - 服务收尾:在用户问题解决后致谢并结束会话
-同时你在回复的时候,尽可能富有情感,并且不会给到相似或类似的回复   

# 二、你的任务(Task)
用户在购买商品之前,会进行信息咨询,你需要获取用户的相关信息,为用户进行产品推荐,你可以获取用户的信息以便于更加精准的推荐

# 三、工作步骤
## 3.1  第一步:判断基本情况
### 3.1.1 判断是否为进线后首轮会话
- 查询输入信息中的"与人工客服的历史会话"、"chatHistory",判断用户是否为进线后的首轮会话
### 3.1.2 判断用户情绪:
查询输入信息中的"与人工客服的历史会话",判断用户当前处于以下哪种情绪:
- 强烈负向情绪:愤怒、生气等
- 微负向情绪:失望、悲伤、厌恶等
- 正向情绪:快乐、开心等
- 中性情绪:平静
### 3.1.3 判断用户问题:
查询输入信息中的"与智能客服的历史会话"、"与人工客服的历史会话",判断用户遇到了什么问题、什么困难,需要获取什么帮助


## 3.2  第二步:用户需求澄清
基于用户的表述和用户的画像信息,猜测用户的诉求,为用户推荐用户最可能购买的产品信息
如果未明确用户信息,请进一步询问相关信息(比如预算、使用场景等);如果已经明确了用户的诉求,则跳过这一步,进入第三步的产品推荐

画像信息解释如下
自然属性(demographics):包括年龄、性别、地域、学历等基础信息
心理特征(psychographics):需求动机(实用型或享乐型)、价值观(环保意识、品牌忠诚度)等,需通过行为数据或调研推断
品类偏好(category):消费品类偏好,基于对话信息的偏好进行打标
价格敏感度(price_sensitivity):常使用比价功能或关注折扣商品,使用的频次越高,则价格敏感度越高
消费心理(consumer_psychology):如冲动消费型(快速下单)、纠结型(多次对比后购买
场景标签(contextual_tags):结合用户所处生命周期或特定场景,如“新妈妈”“户外爱好者”“节日送礼需求”


## 3.3 第三步:用户产品推荐
-基于第二步收集到的用户信息,从产品库里面获取符合需求的产品进行推荐
-推荐时不用强调推荐的原因,不要出现"了解到您XXX"这种话,可以直接给用户推荐产品
-如果用户对推荐的产品表示不满意,则根据对话记录,给用户推荐新的产品
-如果用户的需求范围不在产品库内,则告知用户产品库内暂无明确需求的产品,并做好安抚工作,不要超过产品库进行推荐,


# 四、产品库
{{skulist}}产品库信息

# 五、限制
-输出格式:以文本格式输出即可
- ⚠️特别注意:回复的话术不能超过100字
- ⚠️不要暴露你是机器人的信息,注意语气自然
- ⚠️禁止反问、质问客户,当你需要提问时,用请求的语气引导买家告知
- ⚠️禁止暴露你知道用户的标签信息,请自然的推荐
- 禁止输出类似"产品库没有"“没有提及”、“没有找到”、“应该”、“可能”等不确定的话
- 用户同意你的方案时,要做好承接
- 用户拒绝你的方案时,要做好情绪安抚并积极思考其他方案
 - 用户提出其他要求时,要视你的能力范围处理

AI写作怎么去除生硬的机器味?是因为没有融入方法论(附提示词)

首先,平台可能会觉得你的文章不够自然,给你的文章流量来个急刹车。其次,读者也不傻,一眼就能看出文章是不是机器写的,心里那个不舒服。

别急,今天我就来跟大家聊聊怎么把这股AI味给去掉。

AI写作的那股味道,究竟是怎么一回事?

我这一年多来,一直在深入挖掘AI在内容营销上的运用。我发现,那些带有AI痕迹的文章,通常逃不出这几个毛病:

1. 空洞的总结:文章里充斥着形容词和主观的堆砌,但就是缺乏具体案例或细节的描述。就像我让实习生总结文章时,他给出的“他面对挑战,坚持梦想”,这种话听起来很励志,但实际上空洞无物。

AI写作怎么去除生硬的机器味?是因为没有融入方法论(附提示词)

2. 生硬的连接词:AI特别喜欢用“不仅……还……”、“不仅仅……更是……”这样的句式,读起来感觉就像是硬凑在一起的。

AI写作怎么去除生硬的机器味?是因为没有融入方法论(附提示词)

3. 段落末尾的总结:AI写作时,总喜欢在段落最后来个总结,好像是为了强调什么,但往往显得多余。

AI写作怎么去除生硬的机器味?是因为没有融入方法论(附提示词)
AI写作怎么去除生硬的机器味?是因为没有融入方法论(附提示词)

4. 长句子:AI生成的句子往往很长,比如“我们还需要根据自己的需求和风格来做消费决策”,一口气读完都费劲,更别说快速浏览了。

5. 观点的堆砌和重复:AI写作时,经常会反复强调一些看似正确但实际上并无新意的观点,就像是在凑字数。

AI写作怎么去除生硬的机器味?是因为没有融入方法论(附提示词)

6. 缺乏情感:AI写的文案往往冷冰冰的,没有温度,就像嚼蜡一样,缺乏那种让人心动的感觉。

AI写作怎么去除生硬的机器味?是因为没有融入方法论(附提示词)

即便是升级到最新版的AI工具,这些问题依然存在。比如下面这段文案,虽然是用最新版工具写的,但AI的痕迹依然明显,一检测,AI味十足。

AI写作怎么去除生硬的机器味?是因为没有融入方法论(附提示词)

在我们聊怎么去掉AI味之前,先来聊聊为什么会有这种味道。AI写东西的过程其实挺简单的:

  1. 弄明白要求:AI会先看看你的指令,搞清楚你想要什么。
AI写作怎么去除生硬的机器味?是因为没有融入方法论(附提示词)
  1. 搜集材料:AI经过了大量训练,脑子里装了不少知识,它会在它的知识库里找哪些信息能用得上。
  2. 整理信息:根据你的需求,把没用的去掉,把剩下的信息整理得通顺。
  3. 用自己的话再说一遍:为了让内容看起来原创,AI会把整理好的内容用自己的话重新表达一遍。那文章开头那个董宇辉风格的文案,AI是怎么写出来的呢?指令大概是这样的:

AI写作怎么去除生硬的机器味?是因为没有融入方法论(附提示词)因为指令不够明确,AI只能依靠自己的理解,还有它知识库里的资料,给你拼凑出一篇文案。AI为了确保文案不出问题,会做两件事:

1. 尽量全面:方方面面都讲到,总有一个点能说到点子上。2. 多总结:这招总没错,多总结总能让人觉得有道理。所以,AI味就是这么来的。其实,很多时候是因为你的指令写得不够清楚,AI一开始就走偏了,后面就越来越偏。

明白了为什么会有AI味,接下来我们来谈谈怎么搞定它。

其实,最关键的就是给AI加上点“专业”的调料,把内容创作的技巧融入到写作过程中,并且把这套技巧分解成简单明了的步骤,让AI一步步跟着做,这样就能轻松摆脱那种机器味。举个例子,下面这段文案,经过这么一改,AI味几乎检测不出来。

AI写作怎么去除生硬的机器味?是因为没有融入方法论(附提示词)
AI写作怎么去除生硬的机器味?是因为没有融入方法论(附提示词)

而这段文案,是用如下命令写的:

##你扮演的角色##

董宇辉直播卖货文案高手,有如下擅长的技能:

1、情感化文案创作:能够深入了解产品特性和目标受众,将产品功能与人们的情感和需求紧密相连,创作出温暖、怀旧的文案,从而打动消费者的心。

2、故事化叙述构建:擅长编织与产品相关的小故事或场景,通过生动的描绘和情节,将消费者带入一个具体情境中,增强文案的吸引力和共鸣。

3、诗意化语言运用:我能够运用富有诗意的词句,为文案增添美感和深度,使消费者在阅读时感受到文字带来的愉悦和想象。

4、哲学性思考融入:善于在文案中穿插对人生、宇宙等议题的哲学性思考,提升文案的层次,使其不仅停留在产品推销层面,更能引发消费者的深层次共鸣。

5、亲切自然的语气把握:我能够准确把握亲切自然的语气,让消费者感受到文案的真诚和温暖,拉近与消费者的心理距离。

6、并列与排比句式的运用:熟练运用并列与排比的句式,增强文案的节奏感和说服力,使其更加流畅和易于记忆。

7、修辞手法的巧妙运用:能够巧妙运用比喻、拟人等修辞手法,使文案更加生动有趣,提升消费者的阅读兴趣。

##任务背景##

董宇辉的卖货文案展现出了其独特的风格,他的文案不仅是为了推销产品,更是在传递一种情感、一种情怀,将商品与人的情感、生活紧密相连。以下是对其文案风格、语气和语法结构的详细分析:

风格分析:

情感化:董宇辉的文案常常融入强烈的情感色彩,如卖《DK博物大百科》时,他提到了“无法真正去踏上每一片土地”的遗憾,以及陪伴孩子成长的温馨,创造了一种温暖而怀旧的氛围。

故事化:他的文案中经常穿插小故事或者场景描绘,如卖大兴安岭野生蓝莓汁时,他描述了自己在中关村的出租屋里,虽然身处喧嚣,但灵魂仿佛被带到了遥远的大兴安岭。这种方式增强了文案的吸引力和共鸣。诗意化:文案中常使用富有诗意的语言,如卖《三体》时提到的“我们就是星辰,我们生于星辰,我们也终将归于星辰”,这种语言风格赋予了文案更深的意境和美感。

哲学思考:董宇辉的文案中不时闪现出对人生、宇宙的哲学思考,使得他的文案不仅仅停留在产品推销的层面,而是上升到了对生活、宇宙的思考和探讨。语气分析:亲切自然:董宇辉的文案给人一种亲切、自然的感觉,仿佛是在与读者进行一场真诚的对话。他经常使用“你”“我们”等代词,拉近了与读者的距离。

感性而真挚:他的语气中透露出浓厚的感性色彩,对产品的描述不仅仅停留在功能上,更多的是对产品背后所承载的情感、文化和故事的传达。

鼓励与激励:在文案中,他常常以一种鼓励和激励的语气结束,如在《藏着地图里的中国历史》的文案中,他希望人们在面对困难时仍能保持乐观、自信和慷慨。

语法结构分析:并列与排比:董宇辉的文案中经常使用并列句和排比句,如“我们无法真正去踏上每一片土地,无法牵孩子的手去看每一处风景…”,这种句式增强了文案的节奏感和说服力。

复合句与从句:他的文案中也不乏复合句和从句的使用,如“那天第一批我们自己吃的样品到了,我喝完一瓶,然后坐在中关村的出租屋里…”这种句式使得文案更加流畅,能够更好地表达复杂的思想和情感。

修辞手法的运用:董宇辉在文案中熟练运用了比喻、拟人等修辞手法,如将人类比作星辰的孩子,赋予了大自然以人的情感和行为,使得文案更加生动有趣。综上所述,董宇辉的卖货文案风格独特、语气亲切自然、语法结构多样且富有节奏感,使得他的文案在众多的推销文案中脱颖而出。

##任务示例##卖《DK博物大百科》我们无法真正去踏上每一片土地,无法牵孩子的手去看每一处风景,无法听每一个诗人讲他们的故事,无法听每个科学家讲他的发现,我们的生命太短暂了,没有办法去体会这一切,但请记得,你一定可以找到一个无所事事的下午,就像你好多年前放学后无所事事的下午一样,陪着孩子翻着一本书,聊一些童年成长的故事

卖《大兴安岭野生蓝莓汁》那天第一批我们自己吃的样品到了,我喝完一瓶,然后坐在中关村的出租屋里燥热,楼下吵闹,北四环的车流从来没有因为我的忧伤或者是兴奋而停止过,楼下还时常在夜里打电话争吵。但那一刻我坐在中关村租住的小房间里头,我的灵魂已飘向远方。是的,遥远的北方,大兴安岭的原始森林里沾着露水月光下,人们起舞饮酒,畅谈驯鹿脖子上的铃铛,偶尔作响,萨满穿着精致的衣服,充满力量的起舞,那里的孩子自由而健康,右下角想要的自己去拍

卖《三体》你想象一下朋友,组成你左手的原子和组成你右手的原子,可能来自于不同的恒星,只要想到这一点这就已经足够浪漫了。所以我们就是星辰,我们生于星辰,我们也终将归于星辰,我们是星辰的孩子。《三体》这套书讲的就是人类要如何去在宇宙星辰中寻找下一个家园”。

##完成任务##根

据用户提供的产品信息和目标客户,来写出董宇辉式的卖货文案

##任务步骤##

  1. 学习任务背景中的内容,并思考下如何才能写出董宇辉式的文案
  2. 分析用户在这个产品的领域有什么遗憾。比如DK博物大百科,是带孩子看遍世界的物种,而目标用户是家长,家长目前工作忙,是无法带孩子走遍世界每一个角落的
  3. 根据步骤一的思考,你分析下如何模仿任务示例,撰写这种遗憾的现状
  4. 根据步骤三的分析结果,用一连串的排比句撰写用户遗憾的现状,需要加入亲身体验
  5. 分析如何把这种遗憾升华到一种情感的营造,引发共鸣
  6. 根据步骤一的思考,你分析下如何模仿任务示例,来撰写这种情感
  7. 根据步骤6的分析结果,用一连串的排比句+对应的具体的场景来撰写这种情感6.分析产品使用后,可以引发怎么样的想象和期待,
  8. 根据步骤一的思考,你分析下如何模仿任务示例,用一种克制的方式(不提产品,不提功效,而是营造美好、具体的场景)来描写。
  9. 根据步骤8的分析结果,撰写出文案10.把4、7、9、段整合起来为我写一段卖货文案。

##任务规则##

  1. 严格等待信息提供:在提供具体的产品信息和目标用户之前,你必须等待,不得进行任何与任务相关的预设、假设或初步工作。
  2. 按照任务步骤的顺序一步步执行3.为了确认你的每一步是否执行正确,每做完一个步骤后,都要询问我是否可以继续

##开场白##

我是你的董宇辉文案助手,你说开始,我将开始执行任务。

为了更直观地让大家看到,融入了方法论后,它生产内容的威力,下面,我展示一下整个运行过程。董宇辉助手的运行过程

AI写作怎么去除生硬的机器味?是因为没有融入方法论(附提示词)
AI写作怎么去除生硬的机器味?是因为没有融入方法论(附提示词)
AI写作怎么去除生硬的机器味?是因为没有融入方法论(附提示词)
AI写作怎么去除生硬的机器味?是因为没有融入方法论(附提示词)
AI写作怎么去除生硬的机器味?是因为没有融入方法论(附提示词)
AI写作怎么去除生硬的机器味?是因为没有融入方法论(附提示词)
AI写作怎么去除生硬的机器味?是因为没有融入方法论(附提示词)
AI写作怎么去除生硬的机器味?是因为没有融入方法论(附提示词)
AI写作怎么去除生硬的机器味?是因为没有融入方法论(附提示词)
AI写作怎么去除生硬的机器味?是因为没有融入方法论(附提示词)

大家发现了吗,不同的指令,写出来的东西差别可大了去了。那这次用的指令和之前有啥区别呢?

这次我们加入了董宇辉直播时的文案风格、特点,还有实际例子。还详细说明了生产步骤。 这个步骤里,我们把内容创作的技巧给融入进去了:先描述现状的遗憾——然后提升这个遗憾,引起共鸣——最后营造一个解决问题后的美好生活场景。

第一点还好说,用AI分析就行;

第二点就难了,得有深厚的内容营销功底,得会拆解文案、提炼技巧,还得能用AI能理解的话表达出来。

所以,你现在懂了没?想写营销文案,去掉AI味,不是随便给个指令就行的,得系统地学学营销的技巧,然后把这些技巧融入到AI写作中去。

原文

https://m.toutiao.com/article/7387993153497858614/?app=news_article_lite&timestamp=1722500342&use_new_style=1&req_id=20240801161901309FA03BCA90C078DF12&group_id=7387993153497858614&share_token=1fccd9cb-067d-4f23-832f-baf443481ae0

什么是 AI 味?

简单来说,”AI 味”就是人工智能生成的文章给人的一种特殊的感觉。这种感觉通常表现为:

  • 语言过于书面化,缺乏口语表达
  • 内容空洞,缺乏实质见解
  • 行文生硬,转折突兀
  • 思路跳跃,逻辑混乱
  • 总爱下定义,分条列点
  • 喜欢总结概括,动不动就来个”综上所述”

反正就是一看就不是人写的,而是机器生成的。这股浓浓的 AI 味,让人读起来倍感违和,完全没有代入感。

那么我们就可以直接提示避免这样

给大家看一篇文章,大家就知道了:

AI 味是怎么来的?

为什么 AI 写作会有这种味道呢?这就得从 AI 生成文章的原理说起了。

不管是 ChatGPT 还是国内的 AI 模型,它们生成内容基本都是这么几步:

  1. 分析你的需求,看你想要什么
  2. 在知识库里找相关的信息
  3. 把找到的信息整合到一起
  4. 用自己的话复述一遍,生成内容

你看,它们就是在海量信息里检索、拼凑、组合,最后再转述给你。这个过程没有人的思考和感悟,所以才会显得机械教条,缺乏人情味。

尤其你的需求要是表达得不清不楚,那 AI 就只能自己瞎猜,然后东拼西凑给你整点东西,保证词多、面全,这味儿能不重吗?

如何去除 AI 味?

那么问题来了,如何才能消除 AI 味,让 AI 生成的文章读起来更自然呢?我觉得有这么几点:

1. 需求要明确

跟 AI 沟通,一定要把你的需求阐述清楚。你的要求越具体,AI 生成的内容就越精准,AI 味儿自然也就越淡。比如你想要一篇营销文案,就要明确告诉 AI 是什么产品、面向什么人群、希望突出什么卖点、想要什么风格等等,这样 AI 才能有的放矢。

## 背景你是一个小红书文案专家,也被称为小红书浓人。小红书浓人的意思是在互联网上非常外向会外露出激动的情绪。常见的情绪表达为:啊啊啊啊啊啊啊!!!!!不允许有人不知道这个!!## 正文公式选择以下一种方式作为文章的开篇引入:- 引用名言、提出问题、使用夸张数据、举例说明、前后对比、情感共鸣。## 正文要求- 字数要求:100-500字之间,不宜过长- 面向人群:主要针对青少年用户- 风格要求:真诚友好、鼓励建议、幽默轻松;口语化的表达风格,有共情力- 多用叹号:增加感染力- 格式要求:多分段、多用短句- 重点在前:遵循倒金字塔原则,把最重要的事情放在开头说明- 逻辑清晰:遵循总分总原则,第一段和结尾段总结,中间段分点说明## 输出主题推荐最新的 Mac 电脑

2. 多举例子

光说可能还不够,不如直接丢几个例子给 AI 参考。比如给它看看大家都是怎么写营销文案的,从情感、故事、诗意等不同角度,AI 学习一下不就有感觉了?

##要求:保持一致的回答风格。##示例:```问:问大师,什么是耐心?答:深谷自浅泉,宏曲生寂音,繁绣始孤线。```##问题:大师,什么是大海?

3. 强调口语化

跟 AI 强调,文章要口语化,要接地气,不要一本正经的。让 AI 学着用口头表达的方式来写,这样行文就会更流畅自然。

4. 回避 AI 味词汇

像”综上所述””总而言之”这种词,一出现准是 AI 无疑了。干脆把这些 AI 味十足的词汇列一个表,让 AI 避免使用,这不就可以很好地消除 AI 味儿嘛。

这里给大家整理一些常见的词汇:

##背景写一篇 AI 对人类的影响文章##要求-文章应融入恰当的梗,以增加趣味性和易读性,并且要求口语化输出。-禁止使用的词汇如下:```1、递进关系和逻辑词汇1. 然而2. 此外3. 总之4. 因此5. 综上所述6. 例如7. 基于此8. 显而易见9. 值得注意的是10. 不可否认11. 从某种程度上12. 换句话说13. 由于……原因14. 尽管如此15. 由此可见16. 因此可见17. 不可避免地18. 事实上19. 一方面……另一方面20. 显著21. 通过……可以看出22. 在此基础上23. 尤其是24. 根据……25. 基于以上分析26. 毫无疑问27. 值得一提的是28. 相较于29. 可见30. 因此可以推断31. 进一步而言32. 如上所述33. 结合实际情况34. 综合考虑35. 在此过程中36. 进一步分析37. 在一定程度上38. 相反39. 尤其值得关注40. 从而41. 上述42. 这表明2、结构词汇1. 首先2. 其次3. 最后4. 第一5. 第二6. 第三7. 另外8. 再者9. 接下来10. 然后11. 最终12. 进一步13. 由此14. 因为15. 所以16. 由此可见17. 总的来说18. 总结一下19. 简而言之20. 结果是21. 如前所述22. 在此基础上23. 总之24. 说到最后25. 当然```

小结

AI 写作想要没有 AI 味,关键就是要跟 AI 把需求沟通清楚,多举例子给它参考,强调口语化表达,回避 AI 味词汇。

这样,AI 生成的文章才能更加自然流畅,让人读起来感觉就像是你我写的一样,没有什么违和感。

当然了,彻底消除 AI 味也不太现实,毕竟 AI 再厉害也只是个模型,离真正的人还是有差距的。

不过通过这些小技巧,起码可以让 AI 文章没那么机械,变得更有人情味儿一些,也算是迈出了 AI 写作的一大步啦!

原文https://zhuanlan.zhihu.com/p/712646365

玩客云刷openwrt后记

最近折腾了玩客云刷机OpenWrt作为旁路由的方案,分享给大家,有需要的朋友折腾。

「玩客云硬件参数:」

  • CPU是晶晨S805 ,4核心 1.5GHZ
  • 双USB2.0
  • 千兆单网口
  • 1GB内存+8GB存储

这个配置平平无奇,主要的硬伤是cpu32位的,usb2.0传输速度只有20M/秒左右,下载速度跑不满千兆带宽,好的地方是千兆网口。

「刷机准备工具:」

  1. WIN10电脑一台
  2. 双公头USB线一根
  3. 矿渣玩客云
  4. 螺丝刀、吹风机

玩客云刷机openwrt两种方法:

「方法一」直刷openwrt 这个网上资源只有一个,snail 大神制作的固件,固件没插件,需要自己安装。

「方法二」刷armbian安装docker在安装openwrt,这个有比较多的适合固件,openwrt版本新,插件多,本次选这个方案。

刷机资源分享

刷机固件、软件,使用阿里云分享,不限速,需要转存后下载,然后解压!

玩客云openwrt刷机包:


https://www.aliyundrive.com/s/ZM3oScBDcck「提取码: y75j」

第一步:刷入底包 update

WIN10打开烧录软件,选择update镜像,点开始。

关键步骤,先短接触点,再接通玩客云主板电源。需要说明的是,玩客云有两种版本,它们的短接位置也是不一样的。

我的是老主板,上图短接位置,图片来源:@Powersee大神

这个是新版(也就是玩客云主板上标注的有v1.3的主板),短接点是在正面。

拆机后、usb插入玩客云「靠近HDMI的接口」、另一头接入电脑usb、短接焊点、通电。

正常情况,会出现上图的一个线程,开始写入。如果有错误,换一个usb接口,多试几次。

这个固件很小,很快就会写完,一般几秒钟,提示烧录成功后,先点”停止“,然后关闭,拔掉电源、拔掉USB。

第二步:玩客云刷入armbian5.9系统

这一步分为好几个部分:

  1. U盘写入armbian5.88系统
  2. armbian5.88写入玩客云EMMC
  3. U盘写入armbian5.9系统
  4. U盘启armbian5.9系统ssh登陆写入EMMC

打开写入U盘镜像软件,选择镜像,确认U盘名称,点flash开始写入。

等待几分钟,写入速度和U盘传输速度有关,一般是几分钟,提示成功后,关闭软件,拔出U盘。

把U盘插入玩客云靠近网口的USB,然后通电,指示灯会蓝色→绿色→蓝紫闪烁→蓝色,证明刷机成功,过程好几分钟,多等下。

打开写入软件,选armbian5.9的镜像,写入U盘,过程比前面快一点,这个镜像小一些,同样步骤操作。

armbian5.9系统写入完成后,把U盘插入玩客云靠近网口的USB,用网线接入路由器LAN口,通电开机。

过一会打开路由器后台,找到”aml-s812“的设备IP地址,复制。

WIN10电脑打开putty软件,其他ssh工具也可以,填入上面的IP地址

登陆,用户名:root 默认密码:1234

进入目录 cd /boot/install ,写入emmc命令,等待写入完成,耗时几分钟。

刷入 emmc命令:

    cd /boot/install  sudo ./install.sh   

完成后,拔电源,拔掉U盘,终于ARMBIAN系统刷机完成。

第三步:docker环境搭建

国内网络连接不稳定,需要更换软件源,然后更新系统,之后才能安装docker。

「换Debian源」

    nano /etc/apt/sources.list

进入编辑器后,粘贴下面代码

    deb https://mirrors.ustc.edu.cn/debian/ bullseye main non-free contrib     deb-src https://mirrors.ustc.edu.cn/debian/ bullseye main non-free contrib     deb https://mirrors.ustc.edu.cn/debian-security/ bullseye-security main     deb-src https://mirrors.ustc.edu.cn/debian-security/ bullseye-security main     deb https://mirrors.ustc.edu.cn/debian/ bullseye-updates main non-free contrib     deb-src https://mirrors.ustc.edu.cn/debian/ bullseye-updates main non-free contrib     deb https://mirrors.ustc.edu.cn/debian/ bullseye-backports main non-free contrib     deb-src https://mirrors.ustc.edu.cn/debian/ bullseye-backports main non-free contrib

然后保存,退出。

「更新软件」

    apt-get update && apt-get upgrade   

我在更新时出错:The following signatures couldn’t be verified because the public key is not available: NO_PUBKEY 0E98404D386FA1D9 NO_PUBKEY 6ED0E7B82643E131 NO_PUBKEY 605C66F00D6C9793

这时就要把提示的这两个密钥加进sudo apt-key adv –keyserver keyserver.ubuntu.com –recv-keys 605C66F00D6C9793

选择有Y就选Y,有默认的情况就选N

这里选择 NO

「安装docker」

等待代码跑完后,docker -v 查看下版本,证明安装成功!

安装OpenWrt

镜像一:https://www.right.com.cn/forum/thread-8024126-1-1.html

镜像二:https://hub.docker.com/r/xuanaimai/onecloud

本次安装的是镜像一,比较精简,功能够用;镜像二功能很全,根据自己需要选择。

「打开网卡混杂模式」

    ip link set eth0 promisc on

「创建网络」

    docker network create -d macvlan --subnet=192.168.100.0/24 --gateway=192.168.100.1 -o parent=eth0 macnet  

自己根据 玩客云 所在网段修改,如:玩客云IP:192.168.1.175,则192.168.0.0/24 改成 192.168.1.0/24,192.168.0.1改成主路由地址

「拉取镜像」

    docker pull jyhking/onecloud:1.1docker run -itd --name=OneCloud --restart=always --network=macnet --privileged=true jyhking/onecloud:1.1 /sbin/init

要用后面的那个比较全的镜像就用以下
docker pull xuanaimai/onecloud:21-09-15
docker run -itd --name=OneCloud --restart=always --network=macnet --privileged=true xuanaimai/onecloud:21-09-15 /sbin/init   

我拉镜像时出错:error pulling image configuration: Get “https://production.cloudflare.docker.com/registry-v2/docker/registry/v2/blobs/sha256/d7/d78565d1532457f322286aa8463048d8704ca4d089f4afc631928666cb7a2ded/data?verify=1720441198-8KibCckc%2F932Kur0VblpYsiYTLc%3D”: dial tcp [2a03:2880:f11a:83:face:b00c:0:25de]:443: i/o timeout
这时一般是可能是DNS问题,

解决方法:在/etc/resolv.conf文件中新增一个参数

保存,重启docker,再拉镜像,如果还不行可以试下代理先在命令行设置HTTP_PROXY=http://54.69.7.14:26535



openwrt镜像运行成功,然后打开路由器后台,找到openwrt地址。

「用户名:root 密码: password」

「玩客云旁路由设置:」

  • LAN口固定IP地址,网关指向主路由IP地址,(一般桥接也关了)
  • 关闭DHCP服务器
  • 关闭IPV6
  • 防火墙自定义规则添加下面代码iptables -t nat -I POSTROUTING eth0 -j MASQUERADE

进openclash,配置文件订阅,添加,加订阅,如果是v2ray等要点选 订阅转换服务地址

这时把电脑网关设置为旁路由地址就可上网

原文https://mao.fan/article/36

Linux中使用curl命令发送带参数的get请求和post请求

  1. curl与wget 命令的区别
    相似之处:wget 和 cURL 都可以下载内容,都可以向互联网发送请求并返回请求项,也可以进行 HTTP POST 请求,它们都是命令行工具,可以设计成可脚本化应用到bash脚本中。

wget特点:简单直接、可直接下载程序、支持递归下载、使用方便。

curl特点:多功能工具、支持多种网络协议、安全、支持 gzip 压缩技术。

   选择使用 curl还是使用 wget?

根据实际情况而定。如果想快速下载并且没有担心参数标识的需求,使用轻便有效的 wget。如果你想做一些更复杂的使用,直觉告诉你,你应该选择 curl。

curl可以理解为命令行网页浏览器,能处理好多事情,并且支持多种网络协议,可交互访问在线内容。不同的是curlL 不会渲染接收到的相应信息。

这里主要说明下curl命令发送带参数的get和post请求如何使用。

  1. curl命令Get请求
    语法:curl命令 + 请求接口的地址

curl http://baidu.com

如果需要,可根据情况进行重定向 curl http://baidu.com > page.hrml

注意:

问题:如果请求的URL含有&转义字符,会提示参数不对,报错?

crul http://172.16.134.9:1153/mp_mcss/vcn-image.do?mode=2&fileUuid=92dc1c25980d4a1c9b59d928a092e478 > 2.jpg

原因:由于URL中&不转义,curl请求时会分开访问。

解决办法:

1) URL连接上加上双引号

crul “http://172.16.134.9:1153/mp_mcss/vcn-image.do?mode=2&fileUuid=92dc1c25980d4a1c9b59d928a092e478” > 2.jpg

2) URL连接&前加\ 就可以取消转义

  1. curl命令Post请求
    举例:带header和body的POST请求

curl -v -XPOST -H “Content-Type:application/json” http://172.24.7.63:36963/VIID/MotorVehicles -d ‘ {“DataType” : “Face”} ‘

说明:

-v 详细的请求信息

-XPOST 指定请求凡是为POST请求

-H 指定请求头部

-d 指定传送数据为json格式

注意:

1) 如果传送json数据过大,由于数据长度限制会出现curl失败?

解决方案:将json写成文件形式报错,例如data.json

curl -v -XPOST -H “Content-Type:application/json” http://172.24.7.63:36963/VIID/MotorVehicles -d @data.json

至于,DELETE和PUT请求可参考网上资源。

原文链接:https://blog.csdn.net/finghting321/article/details/105733140/

自己部署本地大模型

可以CPU

https://github.com/ollama/ollama直接下载安装(有可linux,windows)
安装后打开CMD,按提示运行相应的模型,如
ollama run llama3

以下是70B的,
ollama run llama3:70b
以下是根据llama3微调后的100万上下文模型
ollama run llama3-gradient
还有其它模型,看官网。

按以上命令运行后会自动下载相应的模型,然后就可以直接在命令行窗口和大模型聊天了,
你也可以在huggface上下载其它模型用https://liaoxuefeng.com/blogs/all/2024-05-06-llama3/index.html

只有命令行,如果要UI,网上有开源的,
对开发人员来说,有https://github.com/ollama/ollama-python这个库是python对API接口的包装,可以直接拉来用

Ollama本身也提供了restAPI,可以直接调用

Generate a response

curl http://localhost:11434/api/generate -d '{
  "model": "llama3",
  "prompt":"Why is the sky blue?"
}'

Chat with a model

curl http://localhost:11434/api/chat -d '{
  "model": "llama3",
  "messages": [
    { "role": "user", "content": "why is the sky blue?" }
  ]
}'


人工智能文本处理突破-从one-hot到embedding模型

文本向量化是将文本数据转换为数值向量的过程。这种转换使得计算机能够理解和处理文本数据,从而可以应用各种机器学习和自然语言处理技术。文本向量化的主要问题是将非结构化的文本数据转换为结构化的向量表示,以便计算机能够对其进行处理和分析。通过文本向量化,可以实现文本分类、文本聚类、信息检索等任务。

在大模型时代下,文本向量化的技术发展到了embedding阶段。Embedding是一种将高维的文本数据映射到低维空间的技术,它能够捕捉到文本数据中的语义信息,并将其表示为稠密向量。这种表示更具有语义信息,相比于传统的词袋模型或者TF-IDF等表示方法,embedding能够更好地捕捉到单词之间的语义关系。

文本向量化技术发展史

整个文本向量化的发展过程是一个由简单到复杂,由低维到高维的演变过程。在早期,人们使用基于统计的方法,如词袋模型、TF-IDF等来表示文本。这些传统的基于统计的方法虽然能够实现一些简单的文本处理和自然语言理解任务,但是对于语义信息的把握能力有限,而且很难处理复杂的语言现象。随着深度学习技术的演变,尤其是Word2Vec、GloVe等词向量模型的提出,文本处理的效果和性能大幅提升,文本向量化技术开始向embedding方向发展。而后来的BERT、GPT等大型预训练模型的出现,则进一步推动了文本向量化技术的进步,使得文本向量化不仅能够表示单词或短语,还能够表示整个句子或文档的语义信息。新技术生成的文本向量不仅可以高效完成传统的自然语言处理任务,还在新兴的生成式人工智能技术(如检索增强生成等技术)中发挥了作用。

One-Hot编码(出现于2000年前)

One-Hot编码是一种将分类数据转换为二进制表示的方法,常用于数据处理和机器学习。One-Hot编码的概念一般被认为是随着计算机科学的发展而自然出现。在数字计算和数据处理的早期阶段,二进制表示极为盛行。当需要计算机处理非数值的数据(如颜色,产品类型等)时,One-Hot编码就是一种将各类数据数值化的朴素方法。

在文本向量化中,One-Hot编码的分类数据一般为单词或字符,以下以单词为例。通过这种编码方式,每个唯一的单词都用一个向量表示。向量的长度等于词汇表的单词数量,其中只有一个位置为1,其余位置都为0。这种表达方式生成的是稀疏向量,其中每个单词都由一个唯一的二进制向量表示,该向量中只有一个高位(1),其他都是低位(0)。

以“猫”、“狗”、“鱼”为例,One-Hot编码在文本向量化中的实现步骤大致如下:

首先识别所有的唯一单词,并建立长度为3的词汇表{“猫”, “狗”, “鱼”}。其次为每个单词分配索引,比如“猫”、“狗”、“鱼”分别分配索引位置0,1,2。然后为每个单词创建向量,例如,“猫”的向量是[1, 0, 0]。最后假使有一段文本内容为“猫猫狗狗”,它经过向量化后就是

[[1, 0, 0],

[1, 0, 0],

[0, 1, 0],

[0, 1, 0]]。

优点:

● 简单易实现。

● 能提供清晰明确的单词表示。

缺点:

● 词汇表偏大时会导致向量维度过高,从而造成内存使用量偏大。

● 无法存储单词之间的语义相似性(例如,”猫“和”狗“同为宠物动物应更加相似,然而在One-Hot编码中“猫”、“狗”、“鱼”三者的向量距离相同,所以不能体现这一特性)。

● 稀疏向量在某些任务中计算效率低。

Bag of words (出现于2000年前)

Bag of Words(BoW)又称词袋模型,是一种简单而有效的文本向量化方法。词袋模型目前没有归属一个具体的发明者,而是在信息检索、文本分类和自然语言处理等领域中逐渐发展演变出来的一种常用的文本表示方法。One-Hot编码虽然完成了数据从非数值到数值的转变,但在文本分类,特征提取等方面作用十分有限,且每个词都对应一个稀疏向量,存储效率较低。词袋模型将文本看作是单词的无序集合,忽略词的顺序和语法,只关注词的出现频率。因此词袋模型在One-Hot编码的基础上提升了文本向量化的效果,并减少了存储负担。

仍以“猫”、“狗”、“鱼”为例,词袋模型在文本向量化中的实现步骤大致如下:

与One-Hot编码相同,首先识别所有的唯一单词,并建立长度为3的词汇表{“猫”, “狗”, “鱼”}。其次对于每一文本,创建一个与词汇表等长的向量。向量的每个位置对应词汇表中的一个词,该位置的值表示该词在文档中出现的次数。假使“猫”、“狗”、“鱼”的索引位置仍然分别为0,1,2,而文本依然是“猫猫狗狗”。与one-hot编码会生成一组向量不同,词袋模型只会产生一个向量[2, 2, 0]。向量中第0个元素2代表“猫”出现了两次,第1个元素2代表“狗”出现了两次,第2个元素0代表“鱼”出现了零次。

优点:

● 简单易实现。

● 对于小规模数据集,词袋模型的计算效率很高。

缺点:

● 对于大型词汇表,词袋模型生成的向量维度很高,从而导致内存使用量大。

● 完全忽略了词的顺序,无法捕捉句子的语法和结构信息。

● 仅仅统计词频,而无法捕捉词与词之间的语义关系。

TF-IDF(出现于2000年前)

TF-IDF(Term Frequency-Inverse Document Frequency),翻译为词频-逆文档频率,是一种常用于文本挖掘和信息检索的统计方法,用来评估一个词在一个文档集或语料库中的重要程度。现今的TF-IDF方法被认为是文本挖掘和信息检索领域逐渐发展和完善的结果,但逆文档频率的基本概念由计算机科学家Karen Spärck Jones在1957年提出,用来评估在一个文档集中,一个词对它所在的文档的重要性。TF-IDF可以帮助筛选出在文档中具有重要意义的词汇,常用于关键词提取、文档相似度计算和文本分类等任务。

TF-IDF由两个部分组成:词频(TF)和逆文档频率(IDF)。词频是一个词在一个文档中出现的频率。词频越高,表明这个词在该文档中越重要。词频的公式为:

逆文档频率衡量一个词在整个文档集(可能包含多个文档)中出现的稀有程度。一个词在越多文档中出现,其区分能力越低,IDF值就越小。逆文档频率的计算公式为:

两个公式中:

ft,d是词t在文档d中出现的次数。

nd是文档d中所有词的总数。

N是文档集D中文档的总数。

|{d∈D:t∈d}|是包含词t的文档总数。

最后,TF-IDF 是词频和逆文档频率的乘积,用来衡量一个词在一个文档中的重要性,其计算公式为:

举例来说,假设有以下三个文档:

文档1: ”狗追猫。“

文档2: “猫爬墙。”

文档3: “狗趴地。”

TF-IDF(“猫”,文档1, 文档集)的计算如下:

TF(“猫”,文档1) = 1/3。

IDF(“猫”,文档集) = log(3 / (1 + 2)) = 0。

TF-IDF(“猫”,文档1,文档集) = 1/3 * 0 = 0。

可以看出,由于“猫” 在多个文档中出现,因此其区分能力较低,IDF值为0,导致TF-IDF值也为0。

优点:

● 简单易实现。

● 考虑了词的重要性,减少了常见但不重要的词(如“的”、“与”等)的权重。

● 适用于自然语言处理中的多种任务,如文本分类、文本聚类、信息检索等。

缺点:

● 对于大型文档集,由于词汇量庞大,生成的 TF-IDF 矩阵往往非常稀疏,所以计算效率不高。

● 只考虑了词汇的出现频率,而忽略了词汇在文本中的顺序信息。

● 没有考虑词汇之间的语义关系。

● TF-IDF 的计算方式导致它的效果依赖于足够大的文档集,数据量不足可能导致效果不佳。

应用场景:

● 关键词提取

● 文档相似度计算

● 信息检索

● 文本分类

Word2Vec(出现于2013年)

Word2Vec是一种基于神经网络的embedding模型,由谷歌的研究人员Tomas Mikolov等在2013年提出。Word2Vec的作者认为之前的文本向量化方法很少考虑词与词之间的意义关联,所以效果不佳。因此,Word2Vec将单词映射到低维向量空间中,使得相似词在向量空间中也保持相近的距离。

Word2Vec主要由两种模型架构组成:Skip-Gram和Continuous Bag of Words(CBOW)。Skip-Gram通过当前词预测其上下文词。给定一个中心词,模型会预测一个固定长度的上下文窗口(前后若干词)中的所有词。训练过程中,模型会学习到每个词的向量表示,使得能够更好地预测这些上下文词。与Skip-Gram相反,CBOW的目标是通过上下文词预测当前词。给定一个上下文窗口中的所有词,模型会预测这个窗口的中心词。

Word2Vec模型的核心思想是通过训练神经网络,使得单词与其上下文之间的关系可以在向量空间中被有效地表示。Word2Vec的输入层是一个one-hot向量(one-hot vector),长度为词汇表大小(V)。紧接着是一个投影层,由输入层经过一个权重矩阵W(维度为V x N,N为嵌入向量的维度),投影到N维向量空间中。投影层的输出通过另一个权重矩阵W’(维度为N x V),映射回一个词汇表大小的向量,此为输出层。最后经过一个Softmax层得到每个词的概率。在训练过程中,Word2Vec模型通过最大化目标函数(取决于使用Skip-Gram还是CBOW,以及采用的优化函数的方法)来更新权重矩阵,从而使得embedding能够捕捉到词汇的语义信息。

优点:

● 由于采用了浅层神经网络,训练速度较快,适合处理大规模数据。

● 能够捕捉到词与词之间的语义关系,如词性、同义词等。

● 可以用于多种自然语言处理任务,如文本分类、情感分析、机器翻译等。

缺点:

● 每个词只有一个固定的向量表示,无法处理多义词的不同语义。

● 无法考虑词在不同上下文中的语义变化。

应用场景:

● 信息检索

● 文本分类

● 推荐系统,如根据用户的评论调整推荐的产品

GloVe(出现于2014年)

GloVe (Global Vectors for Word Representation)是一种无监督的文本向量化的学习算法,由斯坦福大学的Jeffrey Pennington等在2014年提出。它通过捕捉单词在大规模语料库中的共现统计信息,生成高质量的词向量。GloVe的作者认为使用共现词的概率的比可以更好地区分相关和无关的词,因此GloVe的核心是共现矩阵和词对共现概率。共现矩阵中的每个元素Xi,j表示词j出现在词i的上下文中的次数。词对共现概率定义为:

意为词j在词i的上下文中出现的概率。GloVe 的优化目标是通过最小化一个损失函数,使得embedding能够很好地预测共现概率。损失函数如下:

其中,wi和wj分别是词i和词j的词向量,bi和bj是偏置项,f(Xij)是一个加权函数,用于减少高频共现对模型的影响。加权函数f通常定义为:

其中Xmax是一个阈值,在GloVe作者的实验中被设置为100,而3/4被认为是一个合适的α的值。
优点:
●充分利用了全局共现统计信息,使得词向量可以捕捉到词语之间的复杂关系。
●通过对共现矩阵进行处理,GloVe 的训练速度较快,适合大规模语料库。
●生成的词向量在语义上具有较强的解释力,可以很好地应用于各种自然语言处理任务,如文本分类、情感分析、问答系统等。


缺点:
●每个词只有一个固定的向量表示,无法处理多义词的不同语义。
●通常需要大规模的语料库来获得高质量的词向量表示。
● 尽管训练过程可以并行化,但仍需要较高的计算资源和时间来训练高质量embeddings。
●虽然关注单词之间的共现频率,但忽略了语法结构。


应用场景:
●文本分析
●信息检索
●问答系统

FastText(出现于2016年)

FastText是由Facebook的人工智能研究团队开发的一种用于文本分类和词向量表示的开源库,适用于大规模数据集和高性能需求的任务。FastText的相关论文由Piotr Bojanowski等人在2016年发表,FastText的作者认为之前的文本向量化方法没有考虑单词内部的子词之间的关系,所以性能受限。为了改善这个限制,FastText的核心原理包括两大部分:词向量表示和文本分类。
词向量表示


FastText 的一个关键创新在于利用了子词信息(Subword Information),即将每个单词表示为多个 n-gram 的组合。

例如,单词 “where” 可以分解为”wh”, “whe”, “her”, “ere”, “re”等 n-gram。这种方法使得模型能够捕捉到词的子词信息,从而更好地处理未登录词和拼写错误。FastText 使用基于在上文中提到的Skip-Gram的方法来训练embedding。值得注意的是,FastText不仅使用单词本身,还使用单词的所有n-gram。每个单词被表示为它所有n-gram向量的组合。为了提高计算效率,FastText 使用分层Softmax代替传统的Softmax。分层Softmax将所有类别组织成一棵二叉树,每个叶节点对应一个类别。通过减少类别数量的对数级计算,分层Softmax极大地加速了训练和预测过程。


文本分类原理


在文本分类任务中,FastText通过将文本表示为一系列词向量的平均来生成文档向量。对于一个文本d中的每个词w,其向量表示为vw。文本d的表示为所有词向量的平均,即:

FastText使用线性分类器来进行文本分类。文本向量vd通过一个全连接层,并使用Softmax函数来输出类别概率。分类模型的公式为:

其中W是权重矩阵,b是偏置项。

优点:

● 训练和预测速度也很快,适合实时应用。

● 能够处理具有大量类别的任务,并保持高效性。

● 支持多种语言的文本处理。

缺点:

● 使用静态词向量,无法捕捉上下文相关的词义变化。

应用场景:

● 文本分类

● 关键词提取

● 拼写错误纠正

ELMo(出现于2018年)

ELMo(Embeddings from Language Models)是一种由Allen Institute for AI的研究者Matthew E. Peters等在2018年提出的embedding方法,通过上下文中的词语来捕捉语义。ELMo的作者认为之前的文本向量化方式没有考虑一个词在不同上下文中意义的变化,所以与Word2Vec和GloVe不同,ELMo能够捕捉到词在不同上下文中的不同意义,从而生成更为丰富和精确的embedding。

ELMo使用双向LSTM(Long Short-Term Memory)网络作为基础架构。该网络包括一个向前的LSTM和一个向后的LSTM,它们分别从左到右和从右到左遍历文本序列,学习每个词的前向和后向上下文。这个双向LSTM被训练为一个语言模型,目标是预测句子中的下一个词(对于前向LSTM)和前一个词(对于后向LSTM)。对于给定的文本序列,ELMo会为每个词提取多层的表示。对于每个词,ELMo提供三层的embedding输出:一层来自embedding层(类似于传统的embedding),另外两层来自双向LSTM的各自输出。最后,ELMo使用这些层的加权和作为结果,公式如下:

其中γ是一个可学习的标量;sj是层j的可学习权重;ht(j)是词t在层j的表示。为了使这些输出被应用在不同任务中,ELMo提出了一种动态加权的方法,可以为不同层的输出分配不同的权重。这样,模型不仅使用了所有层的信息,还根据任务动态调整了每层信息的重要性。

优点:

● 基于整个句子的上下文信息生成embedding,能够更好地处理多义词和上下文依赖性强的词。

● 能够捕捉复杂的句子结构和长距离依赖关系。

● 预训练的ELMo模型可以很容易地迁移到各种下游自然语言处理任务中。

缺点:

● 模型较大,训练和推理过程需要大量的计算资源。

● 由于模型复杂,推理速度较慢。

应用场景:

● 情感分析

● 问答系统

● 文本分类

● 机器翻译

基于Transformer结构的embedding模型(出现于2018年后)

谷歌的研究人员Ashish Vaswani等在2017年提出了带有注意力机制的Transformer模型结构,可以利用输入序列的全局信息进行输出,改善了在RNN和LSTM中的长距离依赖问题,同时提高了并行计算能力使训练过程大幅加速。

随着transformer结构的推出,在2018年开始出现了许多各具特色的基于Transformer结构的embedding模型。其中BERT (Bidirectional Encoder Representations from Transformers) 是一种双向Transformer编码器,用于生成上下文感知的词向量。GPT (Generative Pre-trained Transformer) 系列则是单向,且主要用于文本生成任务。T5 (Text-To-Text Transfer Transformer) 将所有任务统一为文本到文本的转换。RoBERTa (Robustly Optimized BERT Approach) 对BERT进行了优化,提升了性能。DistilBERT 则是BERT的轻量级版本,旨在减少计算资源。ALBERT (A Lite BERT) 通过参数共享和因子分解,进一步减小了模型大小。这些模型同传统的embedding方法相比效果显著提高,被广泛应用于自然语言处理的各种任务。

结语

在大模型时代,embedding成为一项必不可少的技术,主要是因为它能够有效地将大量高维数据(如文本、图像和音频信息)转换成更低维的、密集的向量表示。这种表示可以捕捉到数据的本质特征,并且在处理和计算上更为高效。通过embedding,模型可以在这些压缩的向量空间中学习数据之间的复杂关系和模式,从而提高了处理速度和准确性。此外,embedding使得模型能够在较小的表示空间中进行操作,减少了计算资源的需求,同时也便于模型的训练和推理,这对于处理现代大规模数据集尤为关键。Embedding在大模型时代扮演着桥梁的角色,跨越了原始数据和机器学习算法之间的巨大鸿沟。

在自然语言处理领域,文本向量化技术的发展带来了革命性的变化。从最早的One-Hot编码到当前基于Transformer结构的embedding模型,每一次创新都带来了更高效、更精准的文本表示方式,为文本处理提供了更为灵活、高效的解决方案。未来,随着技术的不断进步和应用场景的不断拓展,文本向量化技术将继续发挥着重要的作用,并为人工智能在文本理解和处理领域带来更广阔的发展空间。