1import json
2import os
3import openai
4
5from apify_client import ApifyClient
6
7
8
9if __name__ == '__main__':
10
11 client = ApifyClient(os.environ['APIFY_TOKEN'], api_url=os.environ['APIFY_API_BASE_URL'])
12
13
14 default_kv_store_client = client.key_value_store(os.environ['APIFY_DEFAULT_KEY_VALUE_STORE_ID'])
15
16
17 actor_input = default_kv_store_client.get_record(os.environ['APIFY_INPUT_KEY'])['value']
18 print('Actor input:')
19 print(json.dumps(actor_input, indent=2))
20
21
22 openai.api_key = actor_input["api_key"]
23
24 responses = []
25 dataset = []
26
27 for prompt in actor_input['prompt']:
28 response = openai.Completion.create(
29 engine=actor_input['engine'],
30 prompt=prompt,
31 temperature=float(actor_input['temperature']),
32 max_tokens=actor_input['max_tokens'],
33 top_p=float(actor_input['top_p']),
34 frequency_penalty=float(actor_input['frequency_penalty']),
35 presence_penalty=float(actor_input['presence_penalty']),
36 stop=actor_input['stop']
37 )
38 responses.append(response.choices[0])
39 dataset.append({
40 "prompt": prompt,
41 "response": response.choices[0].text
42 })
43
44
45 default_kv_store_client.set_record('OUTPUT', responses)
46
47
48 default_dataset_client = client.dataset(os.environ['APIFY_DEFAULT_DATASET_ID'])
49
50
51 default_dataset_client.push_items(dataset)