본문으로 건너뛰기

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);
}