(url, html, provider = DEFAULT_PROVIDER, api_token = None, base_url = None)
| 842 | }] |
| 843 | |
| 844 | def extract_blocks(url, html, provider = DEFAULT_PROVIDER, api_token = None, base_url = None): |
| 845 | # api_token = os.getenv('GROQ_API_KEY', None) if not api_token else api_token |
| 846 | api_token = PROVIDER_MODELS.get(provider, None) if not api_token else api_token |
| 847 | |
| 848 | variable_values = { |
| 849 | "URL": url, |
| 850 | "HTML": escape_json_string(sanitize_html(html)), |
| 851 | } |
| 852 | |
| 853 | prompt_with_variables = PROMPT_EXTRACT_BLOCKS |
| 854 | for variable in variable_values: |
| 855 | prompt_with_variables = prompt_with_variables.replace( |
| 856 | "{" + variable + "}", variable_values[variable] |
| 857 | ) |
| 858 | |
| 859 | response = perform_completion_with_backoff(provider, prompt_with_variables, api_token, base_url=base_url) |
| 860 | |
| 861 | try: |
| 862 | blocks = extract_xml_data(["blocks"], response.choices[0].message.content)['blocks'] |
| 863 | blocks = json.loads(blocks) |
| 864 | ## Add error: False to the blocks |
| 865 | for block in blocks: |
| 866 | block['error'] = False |
| 867 | except Exception as e: |
| 868 | parsed, unparsed = split_and_parse_json_objects(response.choices[0].message.content) |
| 869 | blocks = parsed |
| 870 | # Append all unparsed segments as onr error block and content is list of unparsed segments |
| 871 | if unparsed: |
| 872 | blocks.append({ |
| 873 | "index": 0, |
| 874 | "error": True, |
| 875 | "tags": ["error"], |
| 876 | "content": unparsed |
| 877 | }) |
| 878 | return blocks |
| 879 | |
| 880 | def extract_blocks_batch(batch_data, provider = "groq/llama3-70b-8192", api_token = None): |
| 881 | api_token = os.getenv('GROQ_API_KEY', None) if not api_token else api_token |
no test coverage detected
searching dependent graphs…