Рассчитать AWS Понять стоимость настроения - PullRequest
1 голос
/ 02 мая 2020

Я бы хотел программно оценить стоимость вызова API AWS Comprehend Sentiment. Я искал SO и калькуляторы AWS , но не смог найти способ. Кроме того, я уверен, что стоимость текста, который я отправлю, будет небольшой, но я действительно хочу знать.

На основании информации о ценах здесь Я написал код ниже. Это правильно?

text = ["What a horrible rainy day today", 
        "What a great day today", 
        "This is a neutral statement"]

numChars = sum(len(i) for i in text)

#Sentiment is measured in units of 100 characters, with a 3 unit (300 character) minimum charge per request.
numUnits = int(math.ceil(numChars / 100))

# Up to 10M units
if numUnits < 10000000:
    pricePerunit = 0.0001
    sentimentCost = numUnits * pricePerunit

# From 10M-50M units
elif numUnits >= 10000000 and numUnits <= 50000000:
    pricePerunit = 0.0001
    sentimentCost = 9999999 * pricePerunit

    pricePerunit = 0.00005
    sentimentCost = sentimentCost + ((numUnits - 10000000) * pricePerunit)

# Over 50M units.
elif numUnits > 50000000:
    pricePerunit = 0.0001
    sentimentCost = 9999999 * pricePerunit

    pricePerunit = 0.00005
    sentimentCost = sentimentCost + (40000000 * pricePerunit)

    pricePerunit = 0.000025
    sentimentCost = sentimentCost + ((numUnits - 49999999) * pricePerunit)

print("\nEstimated $ charges to call AWS Comprehend Sentiment are: %0.5f\n" % sentimentCost)

1 Ответ

1 голос
/ 02 мая 2020

Нет, этот расчет неверен. В частности:

  • вам нужно округлить для единиц, поэтому используйте math.ceil(numChars / 100)
  • стоимость / единица отличается для первых 10M, следующих 40M и всего, что за 50M, и вы ошибочно предположили, что все единицы взимаются по предельной ставке. Ваш код будет рассчитывать стоимость 10M + 1 единиц как (10M + 1) * 0,00005, когда она должна составлять 10M * 0,0001 + 1 * 0,00005
  • . Кроме того, ваш код будет иметь sh с точно 10000000 или 50000000 Единицы
...