当前位置: 首页 > web >正文

c#开发AI模型对话

AI模型

  前面已经介绍了一般AI模型本地部署,直接调用现成的模型数据。这里主要讲述讲接口集成到我们自己的程序中使用方式。

微软提供了ML.NET来开发和使用AI模型,但是目前国内可能使用不多,至少实践例子很少看见。开发训练模型就不介绍了,如果有兴趣或者工作需要可以直接看官网,基础应用不是特别复杂。

这里主要是程序中集成使用模型。微软提供Microsoft.Extensions.AI库。该库具体使用可以查看文档,很简单。先拿来主义吧,中小企业就是用居多。什么时候美国对中国全面禁止使用再说了,说不定哪天c#,visual studio都不让我们用了呢。

以下主要说说其它方法。

HHTP协议直接请求接口

这种方式是最基础的方式,直接调用Api接口,集成到程序中。以deepseel为例。

使用HttpClient包,请求接口。

 var inputData = new { input_data = "your_input_here" };var jsonContent = JsonConvert.SerializeObject(inputData);var content = new StringContent(jsonContent, Encoding.UTF8, "application/json");var response = await client.PostAsync("http://localhost:5000/predict", content);var result = await response.Content.ReadAsStringAsync();

这样就可以直接访问数据了。

Python 库访问

很多AI模型语言是Python。可以通过Python 和PythonNet来访问接口。

1.安装Python环境。

2.引入PythonNet包。

3.开发Python脚本,例如:

# deepseek_script.py
import deepseekdef run_model(input_data):model = deepseek.load_model("model_path")result = model.predict(input_data)return result

4.调用Python脚本。、

using Python.Runtime;public class DeepSeekIntegration
{public void CallDeepSeek(){// 启动 Python 运行时环境using (Py.GIL()){// 导入 Python 脚本dynamic deepseekScript = Py.Import("deepseek_script");// 调用 Python 函数dynamic result = deepseekScript.run_model("input_data_here");// 打印结果Console.WriteLine(result);}}
}

这样是一种间接方式集成使用。可能有性能优势,但是我没有验证过。

Ollama 访问

这个是本文最主要的内容,因为前面介绍的AI模型本地部署就是该方式。

使用该方式,需要Ollama。

引入OllamaSharp包,调用接口即可。

初始化加载

  // set up the clientvar uri = new Uri("http://localhost:11434");var ollama = new OllamaApiClient(uri);// select a model which should be used for further operationsollama.SelectedModel = "llama3.1:8b";ollamaApi = ollama;

通过地址访问接口。

获取本地模型

 var models = await ollamaApi.ListLocalModelsAsync();//获取本地所有模型//  cmb.Items = models;animals.ItemsSource = models.Select(p=>p.Name);//显示模型animals.SelectedIndex = animals.ItemCount - 1;var model = animals.SelectedItem as string;ollamaApi.SelectedModel = model;

获取本地部署的模型,然后显示下来框中。

下载指定模型

 ollamaApi.PushModelAsync("deepseek-r1:7b");Console.WriteLine("模型下载完成");

通过该接口可以下载模型。

删除模型

 await ollamaApi.DeleteModelAsync("deepseek-r1:7b");Console.WriteLine("模型已删除");

该接口删除指定模型。

模型交互

  await foreach (var response in ollamaApi.GenerateAsync(msg)){Console.Write(response.Response);// rsp.Inlines.Add(response.Response);Dispatcher.UIThread.Post(() =>{rsp.Text = rsp.Text + response.Response; });}

通过输入消息,返回数据。

以上几种方式就可以很简单讲AI模型集成到自己的程序中使用。

一个简单例子的实现样子。

http://www.xdnf.cn/news/11939.html

相关文章:

  • 回归任务和分类任务损失函数详解
  • 性能剖析:在 ABP 框架中集成 MiniProfiler 实现性能可视化诊断
  • 学习笔记(24): 机器学习之数据预处理Pandas和转换成张量格式[2]
  • 以人类演示视频为提示,学习可泛化的机器人策略
  • 鸿蒙仓颉语言开发实战教程:商城登录页
  • [网页五子棋][匹配模块]实现胜负判定,处理玩家掉线
  • 【C++】std::wstring` 和 C# 的 `String`(全称 `System.String`)
  • HRI-2025 | 大模型驱动的个性化可解释机器人人机交互研究
  • .Net Framework 4/C# 面向对象编程进阶
  • 机器学习基础(四) 决策树
  • Spitfire:Codigger 生态中的高性能、安全、分布式浏览器
  • Java 线程池原理详解
  • Rust 学习笔记:Box<T>
  • 更新 Docker 容器中的某一个文件
  • 根目录0xa0属性对应的Ntfs!_SCB中的FileObject是什么时候被建立的----NTFS源代码分析--重要
  • ffmpeg(三):处理原始数据命令
  • 旅游微信小程序制作指南
  • Webpack常见的插件和模式
  • IOS 打包账号发布上传和IOS Xcode证书配置
  • .Net Framework 4/C# 属性和方法
  • VS代码生成工具ReSharper v2025.1——支持.NET 10和C# 14预览功能
  • 【设计模式-4.9】行为型——命令模式
  • 解决Required request part ‘file‘ is not present
  • StarRocks与Apache Iceberg:构建高效湖仓一体的实时分析平台
  • OPENCV重点结构体Mat的讲解
  • 数据结构 [一] 基本概念
  • 第二章 2.2 数据存储安全风险之数据存储风险分析
  • 0. MySQL在Centos 7环境安装
  • flask功能使用总结和完整示例
  • 分布式互斥算法