You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

259 lines
14 KiB
Plaintext

1 month ago
{
"cells": [
{
"cell_type": "code",
2 weeks ago
"execution_count": 1,
1 month ago
"id": "34fd7745",
"metadata": {
"language_info": {
"name": "polyglot-notebook"
},
"polyglot_notebook": {
"kernelName": "csharp"
}
},
"outputs": [
1 month ago
{
"data": {
"text/html": [
2 weeks ago
"<div><div></div><div></div><div><strong>Installed Packages</strong><ul><li><span>Microsoft.Extensions.Configuration, 9.0.9</span></li><li><span>Microsoft.Extensions.Configuration.Binder, 9.0.9</span></li><li><span>Microsoft.Extensions.Configuration.CommandLine, 9.0.9</span></li><li><span>Microsoft.Extensions.Configuration.EnvironmentVariables, 9.0.9</span></li><li><span>Microsoft.Extensions.Configuration.Ini, 9.0.9</span></li><li><span>Microsoft.Extensions.Configuration.Json, 9.0.9</span></li><li><span>Microsoft.Extensions.Configuration.KeyPerFile, 9.0.9</span></li><li><span>Microsoft.Extensions.Configuration.UserSecrets, 9.0.9</span></li><li><span>Microsoft.Extensions.Configuration.Xml, 9.0.9</span></li><li><span>Microsoft.Extensions.DependencyInjection, 9.0.9</span></li><li><span>Microsoft.Extensions.Hosting, 9.0.9</span></li><li><span>Microsoft.Extensions.Http, 9.0.9</span></li><li><span>Microsoft.Extensions.Logging, 9.0.9</span></li><li><span>Microsoft.Extensions.Logging.Configuration, 9.0.9</span></li><li><span>Microsoft.Extensions.Logging.Console, 9.0.9</span></li><li><span>Microsoft.Extensions.Options, 9.0.9</span></li><li><span>Microsoft.Extensions.Options.ConfigurationExtensions, 9.0.9</span></li><li><span>Microsoft.SemanticKernel, 1.65.0</span></li><li><span>Microsoft.SemanticKernel.Connectors.AzureOpenAI, 1.65.0</span></li><li><span>Microsoft.SemanticKernel.Connectors.Chroma, 1.65.0-alpha</span></li><li><span>Microsoft.SemanticKernel.Connectors.DuckDB, 1.53.1-alpha</span></li><li><span>Microsoft.SemanticKernel.Connectors.Google, 1.65.0-alpha</span></li><li><span>Microsoft.SemanticKernel.Connectors.HuggingFace, 1.65.0-preview</span></li><li><span>Microsoft.SemanticKernel.Connectors.InMemory, 1.65.0-preview</span></li><li><span>Microsoft.SemanticKernel.Connectors.Kusto, 1.53.1-alpha</span></li><li><span>Microsoft.SemanticKernel.Connectors.Milvus, 1.65.0-alpha</span></li><li><span>Microsoft.SemanticKernel.Connectors.MistralAI, 1.65.0-alpha</span></li><li><span>Microsoft.SemanticKernel.Connectors.MongoDB, 1.65.0-preview</span></li><li><span>Microsoft.SemanticKernel.Connectors.Ollama, 1.65.0-alpha</span></li><li><span>Microsoft.SemanticKernel.Connectors.Onnx, 1.65.0-alpha</span></li><li><span>Microsoft.SemanticKernel.Connectors.OpenAI, 1.65.0</span></li><li><span>Microsoft.SemanticKernel.Connectors.PgVector, 1.65.0-preview</span></li><li><span>Microsoft.SemanticKernel.Connectors.Redis, 1.65.0-preview</span></li><li><span>Microsoft.SemanticKernel.Connectors.SqliteVec, 1.65.0-preview</span></li><li><span>Microsoft.SemanticKernel.Connectors.SqlServer, 1.65.0-preview</span></li><li><span>Microsoft.SemanticKernel.Connectors.Weaviate, 1.65.0-preview</span></li><li><span>NetEscapades.Configuration.Yaml, 3.1.0</span></li><li><span>System.Net.Http.Json, 9.0.9</span></li></ul></div></div>"
1 month ago
]
},
"metadata": {},
"output_type": "display_data"
},
1 month ago
{
"name": "stdout",
"output_type": "stream",
"text": [
2 weeks ago
"<think>\n",
"嗯,用户问的是“新中国首都是什么?”,首先我需要确认用户的问题是否正确。根据我的知识,中国的首都是北京,但用户可能想知道是否有其他信息,或者可能有其他误解。比如,有些人可能对中国的首都是北京有误解,或者想确认北京的地位。不过,根据历史,北京确实是中华人民共和国的首都,所以回答时需要明确这一点。\n",
"\n",
"接下来,我需要考虑用户可能的背景。如果是学生或学生群体,可能需要更详细的解释,但用户的问题比较直接,所以可能不需要深入。另外,用户可能想确认北京是否正确,或者是否还有其他首都。比如,有时候可能会有其他城市被误称为首都,但根据官方资料,北京是正确的。因此,回答时应该明确北京,并可能补充一些关于首都的重要性,比如地理位置、历史地位等,以增强信息的全面性。\n",
"\n",
"还要注意用户可能的潜在需求,比如他们可能在学习中国历史,或者需要了解首都的位置,所以解释时可以提到北京的地理位置,比如在华北地区,或者与周边城市的关系,但不需要太过复杂。另外,可能用户想知道北京的其他特点,比如人口、经济等,但问题直接问的是首都,所以不需要扩展。\n",
"\n",
"最后,确保回答准确,不添加未经证实的信息,保持简洁明了,符合用户的需求。\n",
"</think>\n",
"\n",
"中华人民共和国的首都是**北京**。北京不仅是中国的首都,也是世界文化与艺术的象征之一,拥有丰富的历史和文化遗产。它位于中国华北地区,是中华文明的重要发源地,也是国际文化交流的重要中心。\n",
"初始化完毕!\n"
1 month ago
]
}
],
"source": [
"/** 初始化文档\n",
" 全局共用文件,包括 Nuget包引用、全局类库引用、全局文件引用、全局命名空间引用、全局变量、全局方法、全局类定义等功能;\n",
" 在业务笔记中引用,执行其它单元格之前先执行一次。\n",
"*/\n",
1 month ago
"\n",
"//导入Nuget包\n",
2 weeks ago
"#r \"nuget:System.Net.Http.Json\"\n",
1 month ago
"#r \"nuget:Microsoft.Extensions.Http\"\n",
"#r \"nuget:Microsoft.Extensions.Hosting\"\n",
"#r \"nuget:Microsoft.Extensions.DependencyInjection\"\n",
"\n",
"#r \"nuget:Microsoft.Extensions.Logging\"\n",
"#r \"nuget:Microsoft.Extensions.Logging.Console\"\n",
"#r \"nuget:Microsoft.Extensions.Logging.Configuration\"\n",
"\n",
"#r \"nuget:Microsoft.Extensions.Configuration\"\n",
"#r \"nuget:Microsoft.Extensions.Configuration.Binder\"\n",
"#r \"nuget:Microsoft.Extensions.Configuration.Json\"\n",
"#r \"nuget:Microsoft.Extensions.Configuration.Ini\"\n",
"#r \"nuget:Microsoft.Extensions.Configuration.Xml\"\n",
2 weeks ago
"#r \"nuget:NetEscapades.Configuration.Yaml\"\n",
1 month ago
"#r \"nuget:Microsoft.Extensions.Configuration.KeyPerFile\"\n",
"#r \"nuget:Microsoft.Extensions.Configuration.UserSecrets\"\n",
"#r \"nuget:Microsoft.Extensions.Configuration.CommandLine\"\n",
"#r \"nuget:Microsoft.Extensions.Configuration.EnvironmentVariables\"\n",
"\n",
"#r \"nuget:Microsoft.Extensions.Options\"\n",
"#r \"nuget:Microsoft.Extensions.Options.ConfigurationExtensions\" \n",
"\n",
"#r \"nuget:Microsoft.SemanticKernel\"\n",
"#r \"nuget:Microsoft.SemanticKernel.Connectors.OpenAI\"\n",
"#r \"nuget:Microsoft.SemanticKernel.Connectors.AzureOpenAI\"\n",
"#r \"nuget:Microsoft.SemanticKernel.Connectors.Google,*-*\"\n",
"#r \"nuget:Microsoft.SemanticKernel.Connectors.Ollama,*-*\"\n",
"#r \"nuget:Microsoft.SemanticKernel.Connectors.MistralAI,*-*\"\n",
"#r \"nuget:Microsoft.SemanticKernel.Connectors.HuggingFace,*-*\"\n",
"#r \"nuget:Microsoft.SemanticKernel.Connectors.Onnx,*-*\"\n",
"#r \"nuget:Microsoft.SemanticKernel.Connectors.InMemory,*-*\"\n",
2 weeks ago
"#r \"nuget:Microsoft.SemanticKernel.Connectors.SqliteVec,*-*\"\n",
"#r \"nuget:Microsoft.SemanticKernel.Connectors.PgVector,*-*\"\n",
1 month ago
"#r \"nuget:Microsoft.SemanticKernel.Connectors.MongoDB,*-*\"\n",
"#r \"nuget:Microsoft.SemanticKernel.Connectors.SqlServer,*-*\"\n",
"#r \"nuget:Microsoft.SemanticKernel.Connectors.Redis,*-*\"\n",
"#r \"nuget:Microsoft.SemanticKernel.Connectors.DuckDB,*-*\"\n",
"#r \"nuget:Microsoft.SemanticKernel.Connectors.Chroma,*-*\"\n",
"#r \"nuget:Microsoft.SemanticKernel.Connectors.Milvus,*-*\"\n",
"#r \"nuget:Microsoft.SemanticKernel.Connectors.Weaviate,*-*\"\n",
"#r \"nuget:Microsoft.SemanticKernel.Connectors.Kusto,*-*\"\n",
"\n",
"//导入文件\n",
"\n",
"//引入命名空间\n",
2 weeks ago
"using System.Collections;\n",
"using System.Collections.Immutable;\n",
"using System.Collections.Frozen;\n",
"using System.Collections.Generic;\n",
"using System.Collections.Specialized;\n",
"using System.Linq;\n",
"using System.Linq.Expressions;\n",
"using System.Net;\n",
"using System.Net.Mime;\n",
"using System.Net.Http;\n",
"using System.Net.Http.Headers;\n",
"using System.IO;\n",
"using System.IO.Pipelines;\n",
"using System.Data;\n",
"using System.Text;\n",
"using System.Text.Json;\n",
"using System.Threading;\n",
"using System.Threading.Tasks;\n",
"using System.Threading.Channels;\n",
"\n",
"using Microsoft.Extensions.Hosting;\n",
"using Microsoft.Extensions.DependencyInjection;\n",
"using Microsoft.Extensions.Options;\n",
"using Microsoft.Extensions.Configuration;\n",
"using Microsoft.Extensions.Configuration.Memory;\n",
"using Microsoft.Extensions.Configuration.Ini;\n",
"using Microsoft.Extensions.Configuration.Xml;\n",
"using Microsoft.Extensions.Configuration.Json;\n",
"using NetEscapades.Configuration.Yaml;\n",
"using Microsoft.Extensions.Configuration.KeyPerFile;\n",
"using Microsoft.Extensions.Configuration.UserSecrets;\n",
"using Microsoft.Extensions.Configuration.CommandLine;\n",
"using Microsoft.Extensions.Configuration.EnvironmentVariables;\n",
"\n",
"using Microsoft.Extensions.Logging;\n",
"using Microsoft.Extensions.Logging.Debug;\n",
"using Microsoft.Extensions.Logging.Console;\n",
"using Microsoft.Extensions.Logging.EventLog;\n",
"using Microsoft.Extensions.Logging.EventSource;\n",
"using Microsoft.Extensions.Logging.Configuration;\n",
"\n",
"using Microsoft.Extensions.AI;\n",
"using Microsoft.SemanticKernel;\n",
"using Microsoft.SemanticKernel.Functions;\n",
"using Microsoft.SemanticKernel.Services;\n",
"using Microsoft.SemanticKernel.Data;\n",
"using Microsoft.SemanticKernel.Connectors;\n",
"using Microsoft.SemanticKernel.Agents;\n",
"using Microsoft.SemanticKernel.Memory;\n",
"using Microsoft.SemanticKernel.Embeddings;\n",
"using Microsoft.SemanticKernel.ChatCompletion;\n",
"using Microsoft.SemanticKernel.Text;\n",
"using Microsoft.SemanticKernel.TextGeneration;\n",
"using Microsoft.SemanticKernel.TextToAudio;\n",
"using Microsoft.SemanticKernel.AudioToText;\n",
"using Microsoft.SemanticKernel.TextToImage;\n",
"using Microsoft.SemanticKernel.ImageToText;\n",
"using Microsoft.SemanticKernel.Connectors.Ollama;\n",
"using OllamaSharp;\n",
"\n",
1 month ago
"\n",
"//公用类、方法、变量\n",
2 weeks ago
"//公用类、方法、变量\n",
"public class OllamaOption\n",
"{\n",
" public string DefaultModel { get; set; } = \"qwen3:0.6b\";\n",
" public string ImageModel { get; set; }\n",
" public string EmbeddingModel { get; set; }\n",
" public string AudioModel { get; set; }\n",
" public string Address { get; set; } = \"http://localhost:11434\";\n",
" public Uri Endpoint { get { return new Uri(this.Address); } }\n",
" public string ServiceId { get; set; } = null;\n",
"}\n",
"\n",
"public class OpenAIOption\n",
"{\n",
" public string DefaultModel { get; set; } = \"qwen3:0.6b\";\n",
" public string ImageModel { get; set; }\n",
" public string EmbeddingModel { get; set; }\n",
" public string AudioModel { get; set; }\n",
" public string Address { get; set; } = \"http://localhost:11434/v1\";\n",
" public Uri Endpoint { get { return new Uri(this.Address); } }\n",
" public string ServiceId { get; set; } = null;\n",
"}\n",
"\n",
"//公开:配置管理\n",
"IConfigurationBuilder AppConfigBinder = new ConfigurationBuilder();\n",
"AppConfigBinder\n",
" .AddInMemoryCollection(null)\n",
" .AddJsonFile(\"config.json\", true, true)\n",
" .AddJsonFile($\"config.{System.Environment.GetEnvironmentVariable(\"DOTNET_MODIFIABLE_ASSEMBLIES\")}.json\", true, true)\n",
" //第三方或自定义配置源\n",
" .AddUserSecrets(\"SemanticKernelStudy\")\n",
" .AddEnvironmentVariables()\n",
" .AddCommandLine(cofigSource => { })\n",
" ;\n",
"\n",
"IConfiguration AppConfiguration = AppConfigBinder.Build();\n",
"\n",
"//可以直接从配置管理中获取配置\n",
"{\n",
" OllamaOption ollamaOption = new OllamaOption();\n",
" AppConfiguration.GetSection(\"OllamaOption\").Bind(ollamaOption);\n",
"\n",
" OllamaApiClient AppOllamaApiClient = new OllamaApiClient(ollamaOption.Endpoint, ollamaOption.DefaultModel);\n",
"\n",
" var o = AppConfiguration.GetValue<OllamaOption>(\"OllamaOption\");\n",
"}\n",
"\n",
"//公开IoC容器\n",
"IServiceCollection AppServices = new ServiceCollection();\n",
"AppServices.AddSingleton<IConfigurationBuilder>(AppConfigBinder);\n",
"AppServices.AddSingleton<IConfiguration>(AppConfiguration);\n",
"AppServices.AddOptions();\n",
"AppServices.Configure<OllamaOption>(AppServices.BuildServiceProvider().GetRequiredService<IConfiguration>().GetSection(\"OllamaOption\"));\n",
"AppServices.Configure<OpenAIOption>(AppServices.BuildServiceProvider().GetRequiredService<IConfiguration>().GetSection(\"OpenAIOption\"));\n",
"AppServices.AddScoped<OllamaApiClient>(implementationFactory: provider => \n",
"{\n",
" OllamaOption option = provider.GetRequiredService<IOptionsMonitor<OllamaOption>>().CurrentValue;\n",
"\n",
" var client = new OllamaApiClient(option.Endpoint, option.DefaultModel);\n",
"\n",
" return client;\n",
"});\n",
1 month ago
"\n",
2 weeks ago
"//使用例子\n",
"{\n",
" IChatCompletionService chatService = AppServices.BuildServiceProvider().GetRequiredService<OllamaApiClient>().AsChatCompletionService();\n",
1 month ago
"\n",
2 weeks ago
" ChatMessageContent response = await chatService.GetChatMessageContentAsync(\"新中国首都是什么?\").ConfigureAwait(false);\n",
" Console.WriteLine(response.Content);\n",
"}\n",
1 month ago
"\n",
1 month ago
"Console.WriteLine(\"初始化完毕!\");"
]
}
],
"metadata": {
"kernelspec": {
"display_name": ".NET (C#)",
"language": "C#",
"name": ".net-csharp"
},
"language_info": {
"name": "polyglot-notebook"
},
"polyglot_notebook": {
"kernelInfo": {
"defaultKernelName": "csharp",
"items": [
{
"aliases": [],
"languageName": "csharp",
"name": "csharp"
}
]
}
}
},
"nbformat": 4,
"nbformat_minor": 5
}