开源 企业版 高校版 私有云 模力方舟 AI 队友
代码拉取完成,页面将自动刷新
捐赠
捐赠前请先登录
扫描微信二维码支付
取消
支付完成
支付提示
将跳转至支付宝完成支付
确定
取消
1 Star 3 Fork 1

开发人工智能/AllInAI.Sharp.API

加入 Gitee
与超过 1400万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
已有帐号? 立即登录
文件
main
分支 (1)
标签 (5)
main
V1.2.1
V1.2.0
V1.1.7
V1.16
V1.1.5
main
分支 (1)
标签 (5)
main
V1.2.1
V1.2.0
V1.1.7
V1.16
V1.1.5
克隆/下载
克隆/下载
提示
下载代码请复制以下命令到终端执行
为确保你提交的代码身份被 Gitee 正确识别,请执行以下命令完成配置
初次使用 SSH 协议进行代码克隆、推送等操作时,需按下述提示完成 SSH 配置
1 生成 RSA 密钥
2 获取 RSA 公钥内容,并配置到 SSH公钥
在 Gitee 上使用 SVN,请访问 使用指南
使用 HTTPS 协议时,命令行会出现如下账号密码验证步骤。基于安全考虑,Gitee 建议 配置并使用私人令牌 替代登录密码进行克隆、推送等操作
Username for 'https://gitee.com': userName
Password for 'https://userName@gitee.com': # 私人令牌
main
分支 (1)
标签 (5)
main
V1.2.1
V1.2.0
V1.1.7
V1.16
V1.1.5
AllInAI.Sharp.API
/
Service
/
PineconeVectorService.cs
AllInAI.Sharp.API
/
Service
/
PineconeVectorService.cs
PineconeVectorService.cs 5.25 KB
一键复制 编辑 原始数据 按行查看 历史
raokun 提交于 2024年01月10日 22:01 +08:00 . v1.2.2
using AllInAI.Sharp.API.Dto;
using AllInAI.Sharp.API.IService;
using AllInAI.Sharp.API.Req;
using AllInAI.Sharp.API.Res;
using AllInAI.Sharp.API.Res.Vector;
using AllInAI.Sharp.API.Utils;
using Microsoft.VisualBasic;
using Newtonsoft.Json;
using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Net.Http.Headers;
using System.Net.Http.Json;
using System.Numerics;
using System.Reflection.Metadata;
using System.Text;
using System.Text.Encodings.Web;
using System.Text.Json;
using System.Text.Unicode;
using System.Threading;
using System.Threading.Tasks;
using System.Xml.Linq;
namespace AllInAI.Sharp.API.Service {
internal class PineconeVectorService : IVectorService {
public async Task ConfigureIndex(HttpClient _httpClient, string name, int? replicas = null, string? podType = null) {
string url = $"/databases/{name}";
var content = new MultipartFormDataContent();
if(replicas != null) {
content.Add(new StringContent(replicas.ToString()), "replicas");
}
if (replicas != null) {
content.Add(new StringContent(podType), "pod_type");
}
await _httpClient.PatchAndReadAsStringAsync(url,content);
}
public async Task<string> CreateCollection(HttpClient _httpClient, string name, string source) {
string url = "/collections";
var content = new { name,source };
return await _httpClient.PostAndReadAsAsync<string>(url, content, default);
}
public async Task CreateIndex(HttpClient _httpClient, string name, uint dimension, Metric metric) {
string url = "/databases";
var content = new { name, dimension, metric="cosine" };
await _httpClient.PostAndReadAsStringAsync(url, content, default);
}
public async Task<string> Delete(HttpClient _httpClient, VectorDeleteReq req) {
string url = "/vectors/delete";
return await _httpClient.PostAndReadAsAsync<string>(url, req, default);
}
public async Task DeleteCollection(HttpClient _httpClient, string name) {
string url = $"/collections/{name}";
await _httpClient.DeleteAndReadAsStringAsync(url, default);
}
public async Task DeleteIndex(HttpClient _httpClient, string name) {
string url = $"/databases/{name}";
await _httpClient.DeleteAndReadAsStringAsync(url, default);
}
public async Task<DescribeCollectionRes> DescribeCollection(HttpClient _httpClient, string name) {
string url = $"/collections/{name}";
return await _httpClient.GetAsync<DescribeCollectionRes>(url);
}
public async Task<DescribeIndexRes> DescribeIndex(HttpClient _httpClient, string name) {
string url = $"/databases/{name}";
return await _httpClient.GetAsync<DescribeIndexRes>(url);
}
public async Task<IndexStats> DescribeIndexStats(HttpClient _httpClient) {
string url = "/describe_index_stats";
return await _httpClient.PostAndReadAsAsync<IndexStats>(url, default);
}
public async Task<Dictionary<string, VectorDto>> Fetch(HttpClient _httpClient, IEnumerable<string> ids, string? indexNamespace = null) {
using var enumerator = ids.GetEnumerator();
if (!enumerator.MoveNext()) {
throw new FormatException("Must contain at least one id");
}
var addressBuilder = new StringBuilder("/vectors/fetch")
.Append("?ids=")
.Append(UrlEncoder.Default.Encode(enumerator.Current));
while (enumerator.MoveNext()) {
addressBuilder.Append("&ids=").Append(UrlEncoder.Default.Encode(enumerator.Current));
}
return await _httpClient.GetAsync<Dictionary<string, VectorDto>>(addressBuilder.ToString());
}
public async Task<List<string>> Listcollections(HttpClient _httpClient) {
string url = "/collections";
return await _httpClient.GetAsync<List<string>>(url);
}
public async Task<List<string>> ListIndexes(HttpClient _httpClient) {
string url = "/databases";
return await _httpClient.GetAsyncAsList<string>(url);
}
public async Task<VectorQueryRes> Query(HttpClient _httpClient, VectorQueryReq req) {
string url = "/query";
return await _httpClient.PostAndReadAsAsync<VectorQueryRes>(url, req, default);
}
public async Task Update(HttpClient _httpClient, VectorUpdateReq req) {
string url = "/vectors/update";
await _httpClient.PostAndReadAsStringAsync(url, req, default);
}
public async Task<VectorUpsertRes> Upsert(HttpClient _httpClient, VectorUpsertReq req) {
string url = "/vectors/upsert";
return await _httpClient.PostAndReadAsAsync<VectorUpsertRes>(url, req, default);
}
private static uint CalculateTotalVectorCount(IndexNamespace[] namespaces) {
uint totalVectorCount = 0;
foreach (var ns in namespaces) {
totalVectorCount += ns.VectorCount;
}
return totalVectorCount;
}
}
}
Loading...
举报
举报成功
我们将于2个工作日内通过站内信反馈结果给你!
请认真填写举报原因,尽可能描述详细。
请选择举报类型
取消
发送
误判申诉

此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。

如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。

取消
提交

简介

c#使用的AI模型调用SDK,整合OpenAI,chatGLM,文心千帆,stable-diffusion 等
取消

发行版

暂无发行版

贡献者

全部

语言

近期动态

不能加载更多了
编辑仓库简介
简介内容
主页
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/devai/AllInAI.Sharp.API.git
git@gitee.com:devai/AllInAI.Sharp.API.git
devai
AllInAI.Sharp.API
AllInAI.Sharp.API
main
点此查找更多帮助

搜索帮助

评论
仓库举报
回到顶部
登录提示
该操作需登录 Gitee 帐号,请先登录后再操作。
立即登录
没有帐号,去注册

AltStyle によって変換されたページ (->オリジナル) /