C#를 활용한 문서 폴더 관리 API
문서 조각 관리
문서 조각 추가
이미 존재하는 DOC_ID를 사용해 문서 조각을 추가하면 덮어쓰여집니다.
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
public class ApiClient
{
private readonly HttpClient _httpClient;
public ApiClient()
{
_httpClient = new HttpClient();
}
public async Task<HttpResponseMessage--> UpdateDocument(string collectionCode, string docId, string apiKey, string projectCode, string text)
{
var url = $"https://api-laas.wanted.co.kr/api/document/{collectionCode}/{docId}";
var requestContent = new StringContent($"{{\"text\": \"{text}\"}}", Encoding.UTF8, "application/json");
_httpClient.DefaultRequestHeaders.Clear();
_httpClient.DefaultRequestHeaders.Add("apiKey", apiKey);
_httpClient.DefaultRequestHeaders.Add("project", projectCode);
return await _httpClient.PutAsync(url, requestContent);
}
}
문서 조각 조회
public async Task<HttpResponseMessage--> GetDocument(string collectionCode, string docId, string apiKey, string projectCode)
{
var url = $"https://api-laas.wanted.co.kr/api/document/{collectionCode}/{docId}";
_httpClient.DefaultRequestHeaders.Clear();
_httpClient.DefaultRequestHeaders.Add("apiKey", apiKey);
_httpClient.DefaultRequestHeaders.Add("project", projectCode);
return await _httpClient.GetAsync(url);
}
문서 조각 삭제
public async Task<HttpResponseMessage--> DeleteDocument(string collectionCode, string docId, string apiKey, string projectCode)
{
var url = $"https://api-laas.wanted.co.kr/api/document/{collectionCode}/{docId}";
_httpClient.DefaultRequestHeaders.Clear();
_httpClient.DefaultRequestHeaders.Add("apiKey", apiKey);
_httpClient.DefaultRequestHeaders.Add("project", projectCode);
return await _httpClient.DeleteAsync(url);
}
문서 검색
ID 기반 유사도 검색
지정한 DOC_ID문서와 유사한 문서 조각을 검색합니다.
public async Task<HttpResponseMessage--> FindSimilarDocuments(string collectionCode, string docId, string apiKey, string projectCode, int limit, int offset)
{
var url = $"https://api-laas.wanted.co.kr/api/document/{collectionCode}/similar/{docId}";
var requestContent = new StringContent($"{{\"limit\": {limit}, \"offset\": {offset}}}", Encoding.UTF8, "application/json");
_httpClient.DefaultRequestHeaders.Clear();
_httpClient.DefaultRequestHeaders.Add("apiKey", apiKey);
_httpClient.DefaultRequestHeaders.Add("project", projectCode);
return await _httpClient.PostAsync(url, requestContent);
}
문자열 기반 유사도 검색
입력된 텍스트 TEXT 와 유사한 문서를 검색합니다. 임베딩 모델이 사용됩니다.
public async Task<HttpResponseMessage--> FindSimilarDocumentsByText(string collectionCode, string apiKey, string projectCode, string text, int limit, int offset)
{
var url = $"https://api-laas.wanted.co.kr/api/document/{collectionCode}/similar/text";
var requestContent = new StringContent($"{{\"text\": \"{text}\", \"limit\": {limit}, \"offset\": {offset}}}", Encoding.UTF8, "application/json");
_httpClient.DefaultRequestHeaders.Clear();
_httpClient.DefaultRequestHeaders.Add("apiKey", apiKey);
_httpClient.DefaultRequestHeaders.Add("project", projectCode);
return await _httpClient.PostAsync(url, requestContent);
}