2017-10-21 2 views
0

나는 루비 언어를 추천 API (푸른인지 서비스에 대한 카탈로그 파일을 업로드 할Ruby를 사용하여 푸른 색인지 서비스에 카탈로그 파일을 업로드하는 방법은 무엇입니까?

C#을 통해 내가 https://github.com/Microsoft/Cognitive-Recommendations-Windows/blob/master/Sample/RecommendationsApiWrapper.cs에서 추출 된 다음 코드()가됩니다.

public CatalogImportStats UploadCatalog(string modelId, string catalogFilePath, string catalogDisplayName) 
    { 
     Console.WriteLine("Uploading " + catalogDisplayName + " ..."); 
     string uri = BaseUri + "/models/" + modelId + "/catalog?catalogDisplayName=" + catalogDisplayName; 
     using (var filestream = new FileStream(catalogFilePath, FileMode.Open, FileAccess.Read)) 
     { 
      var response = _httpClient.PostAsync(uri, new StreamContent(filestream)).Result; 

      if (!response.IsSuccessStatusCode) 
      { 
       throw new Exception(
        String.Format("Error {0}: Failed to import catalog items {1}, for model {2} \n reason {3}", 
         response.StatusCode, catalogFilePath, modelId, ExtractErrorInfo(response))); 
      } 

      var jsonString = ExtractReponse(response); 
      var catalogImportStats = JsonConvert.DeserializeObject<CatalogImportStats>(jsonString); 
      return catalogImportStats; 
     } 

방법 카탈로그 파일을 업로드하기를 루비와 HTTP 클라이언트를 사용하여인지 서비스에? 나는 기본 샘플 코드가 필요 내가 여기에 샘플을 업로드 한

답변

1

감사합니다 :. https://github.com/miparnisari/ruby-cognitive-services

그러나 그것의 요점 : 다음

require 'net/http' 
require 'IO/console' 

class RecommendationsClient 
    def initialize(subscription_key, region) 
     @base_url="https://#{region}.api.cognitive.microsoft.com/recommendations/v4.0" 
     @subscription_key=subscription_key 
    end 

    def upload_catalog(model_id, catalog_display_name, catalog_path) 
     uri = URI("#{@base_url}/models/#{model_id}/catalog?catalogDisplayName=#{catalog_display_name}") 
     request = Net::HTTP::Post.new(uri.request_uri) 
     request['Content-Type'] = 'application/octet-stream' 
     request['Ocp-Apim-Subscription-Key'] = "#{@subscription_key}" 
     request.body = IO.binread(catalog_path) 

     response = Net::HTTP.start(uri.host, uri.port, :use_ssl => uri.scheme == 'https') do |http| 
      http.request(request) 
     end 
     return response.body 
    end 
end 

그리고는 :

r = RecommendationsClient.new("your_key_here", "westus")  
response = r.upload_catalog('1', 'catalog', 'books_catalog.txt') 
puts response 
관련 문제