anduin hat die Gist bearbeitet . Zu Änderung gehen
1 file changed, 103 insertions
program.cs(Datei erstellt)
@@ -0,0 +1,103 @@ | |||
1 | + | using Aiursoft.GptClient; | |
2 | + | using Aiursoft.GptClient.Services; | |
3 | + | using Microsoft.Extensions.DependencyInjection; | |
4 | + | using Microsoft.Extensions.Logging; | |
5 | + | ||
6 | + | namespace Test | |
7 | + | { | |
8 | + | public abstract class Program | |
9 | + | { | |
10 | + | private static readonly string PromptGetIdea = | |
11 | + | """ | |
12 | + | 夏日的农家院里,一只芦花鸡突然扑棱着翅膀冲向墙角,尖喙如闪电般啄起一条扭动的蚂蟥。蚂蟥在鸡嘴里挣扎蜷曲,转眼就被囫囵吞下。 | |
13 | + | ||
14 | + | 围观的小孩瞪大眼睛,这吸血的蚂蟥进了鸡肚子,不得把鸡肠子钻个窟窿? | |
15 | + | ||
16 | + | 这可不是奶奶瞎说,蚂蟥钻人体的案例确实存在,曾有位老汉咳血多日,最后在医院里从气管里夹出活水蛭;南方地区也报告过游泳时水蛭钻入人体黏膜的病例;湖北甚至有人被寄生数月,虚弱得干不了重活。 | |
17 | + | ||
18 | + | 这些吸血的蚂蟥在鼻腔、咽部这些潮湿的黏膜部位寄生,靠吸食血液能活个把月。 | |
19 | + | ||
20 | + | 那么,鸡吃百虫,连毒虫都不在话下,那鸡如果生吞了吸血水蛭,会不会把鸡肚子钻破?人类为什么没有这么强大的消化道呢? | |
21 | + | ||
22 | + | 明明IPv6取之不尽,但为啥运营商却不愿给你“固定地址”? | |
23 | + | ||
24 | + | IPv6作为下一代互联网协议,其地址空间达到了惊人的2^128个,号称"可以为地球上每一粒沙子分配一个IP地址"。 | |
25 | + | ||
26 | + | 然而,许多用户发现,尽管IPv6地址资源如此丰富,大多数互联网服务提供商(ISP)仍然不愿意为用户分配固定的IPv6地址。这是为什么呢? | |
27 | + | ||
28 | + | 看《西游记》连续剧的时候就有很多的疑问,没有细想,觉得大概作者考虑不周的漏洞。多了解一下后,很多看似漏洞的地方也许是有它的道理,甚至是作者故意安排的。 | |
29 | + | ||
30 | + | 读到孙悟空拜师学艺,因为向师兄们炫耀七十二变,把自己变成一棵松树,被菩提师祖赶走了。似乎并不是什么严重的错误,不至于此吧?经过一番查询,各种说法都有,还有说菩提师祖就是如来佛变得,要把猴子变成工具猴。 | |
31 | + | ||
32 | + | 这里抛开种种神仙斗法,阴谋论和算计,为什么孙悟空变棵松树,师傅就要赶他走? | |
33 | + | ||
34 | + | 你有没有注意过,当夜幕降临,草原上的狮子蜷缩在树荫下,河边的鳄鱼半埋在泥水里,它们睡觉的姿势几乎都是“贴地而卧”? | |
35 | + | ||
36 | + | 而我们人类,却习惯在柔软的床上,仰面而眠,甚至还有枕头和被子的讲究。是什么让人类在睡眠时,选择了与绝大多数动物截然不同的姿态?是生理的巧合,还是亿万年进化的秘密?今晚,就让我们翻开这个习惯背后的神秘篇章,一探人类“仰睡”的真正原因。 | |
37 | + | ||
38 | + | 为什么大部分动物是趴着睡,而人却通常仰着睡? | |
39 | + | ||
40 | + | 你有没有注意过,每次坐飞机,总有一条铁律:登机口一到时间,甚至还没起飞,闸门就“啪”地关上,晚几分钟就再也进不去了。 | |
41 | + | ||
42 | + | 而坐火车呢?哪怕你慢悠悠地走到站台,列车马上就要出发,工作人员似乎总会给你留几分钟,甚至整列车都等你上车。为什么同样是交通工具,规则却大相径庭?这背后,到底隐藏着怎样你意想不到的逻辑和秘密?今天,我们就来揭开这道看似简单却耐人寻味的谜题。 | |
43 | + | ||
44 | + | 为什么大部分动物是趴着睡,而人却通常仰着睡? | |
45 | + | ||
46 | + | 上面这几个问题,都非常有趣,对吧? | |
47 | + | ||
48 | + | 还有什么这种,生活中非常巧妙的矛盾,大家好像都习以为常,但一时半会儿又说不出来所以然,又都知道的论题,只是刚好过去没有仔细思考过。想一个让人对话题非常吸引,又好奇答案,还能结合例如西游记这种集体文化和社会现象就更好了。 | |
49 | + | ||
50 | + | 现在你来扮演以为生活观察家,发散思维,充分想象,只需要想一个这样有趣的话题就可以了。现在给出你想到的这个话题。 | |
51 | + | """; | |
52 | + | ||
53 | + | private static readonly string PromptGetIntroduction = | |
54 | + | """ | |
55 | + | {0} | |
56 | + | ||
57 | + | 这个问题非常有趣,我觉得让你帮助我写成一篇小作文。 | |
58 | + | ||
59 | + | 但还别立刻开始。我想先写个有趣的引言。引言的作用是讨论题目,引出读者好奇,吸引读者阅读。 | |
60 | + | ||
61 | + | 模仿公众号的口吻,写一则有趣的引言。不要直接回答问题本身!而是作为一个文章的开头,让读者对答案非常好奇。 | |
62 | + | """; | |
63 | + | ||
64 | + | private static readonly string PromptGetFullArticle = | |
65 | + | """ | |
66 | + | {0} | |
67 | + | ||
68 | + | 现在,深度调查一下这个问题,将你的调查结果,模仿微信公众号的口吻,写一篇完整的小作文吧! | |
69 | + | """; | |
70 | + | ||
71 | + | public static async Task Main() | |
72 | + | { | |
73 | + | #region prepare | |
74 | + | var apiKey = ""; | |
75 | + | var endpoint = "http://localhost:11434/api/chat"; | |
76 | + | var model = "qwen3:30b-a3b-thinking-2507-q8_0"; | |
77 | + | var services = new ServiceCollection(); | |
78 | + | services.AddHttpClient(); | |
79 | + | services.AddLogging(logging => { logging.SetMinimumLevel(LogLevel.Warning); }); | |
80 | + | services.AddGptClient(); | |
81 | + | var serviceProvider = services.BuildServiceProvider(); | |
82 | + | var chatClient = serviceProvider.GetRequiredService<ChatClient>(); | |
83 | + | async Task<string> GetAnswer(string[] prompts) | |
84 | + | { | |
85 | + | return (await chatClient.AskString( | |
86 | + | modelType: model, | |
87 | + | completionApiUrl: endpoint, | |
88 | + | token: apiKey, | |
89 | + | content: prompts, | |
90 | + | CancellationToken.None)).GetAnswerPart(); | |
91 | + | } | |
92 | + | #endregion | |
93 | + | ||
94 | + | for (int i = 0; i < 1000; i++) | |
95 | + | { | |
96 | + | var idea = await GetAnswer([PromptGetIdea]); | |
97 | + | var introduction = await GetAnswer([string.Format(PromptGetIntroduction, idea)]); | |
98 | + | var fullArticle = await GetAnswer([string.Format(PromptGetFullArticle, introduction)]); | |
99 | + | await File.WriteAllTextAsync($"article{i}.md", fullArticle); | |
100 | + | } | |
101 | + | } | |
102 | + | } | |
103 | + | } |
Neuer
Älter