2024-04-04 01:23:24 +00:00
< div style = "position: relative" >
2024-04-23 22:13:30 +00:00
< pre class = "language-python" > < code id = "code-0" class = "language-python" > < span class = "token comment" > # Copyright (c) 2024 Microsoft Corporation. All rights reserved.< / span > < / code > < / pre >
2024-04-04 01:23:24 +00:00
2024-04-04 15:56:27 +00:00
< button class = "code-copy " data-clipboard-target = "#code-0" style = "position: absolute; top: 7.5px; right: 6px; padding-top: 3px; cursor: pointer; outline: none; opacity: 0.8;" title = "Copy" >
2024-04-04 01:23:24 +00:00
< span style = "display:inline-block;background:url(https://api.iconify.design/mdi/content-copy.svg) no-repeat center center / contain;width: 16px; height: 16px;" class = "" > < / span >
< / button >
< / div >
2024-04-23 22:13:30 +00:00
< p > '\nCopyright (c) Microsoft Corporation. All rights reserved.\n'< / p >
2024-04-04 01:23:24 +00:00
< div style = "position: relative" >
2024-04-23 22:13:30 +00:00
< pre class = "language-python" > < code id = "code-4" class = "language-python" > < span class = "token keyword" > import< / span > os
< span class = "token keyword" > from< / span > pathlib < span class = "token keyword" > import< / span > Path
2024-04-04 01:23:24 +00:00
< span class = "token keyword" > import< / span > pandas < span class = "token keyword" > as< / span > pd
< span class = "token keyword" > import< / span > tiktoken
2024-04-23 22:13:30 +00:00
< span class = "token keyword" > from< / span > graphrag< span class = "token punctuation" > .< / span > query< span class = "token punctuation" > .< / span > < span class = "token builtin" > input< / span > < span class = "token punctuation" > .< / span > loaders< span class = "token punctuation" > .< / span > dfs < span class = "token keyword" > import< / span > read_community_reports
2024-04-04 01:23:24 +00:00
< span class = "token keyword" > from< / span > graphrag< span class = "token punctuation" > .< / span > query< span class = "token punctuation" > .< / span > llm< span class = "token punctuation" > .< / span > oai< span class = "token punctuation" > .< / span > chat_openai < span class = "token keyword" > import< / span > ChatOpenAI
< span class = "token keyword" > from< / span > graphrag< span class = "token punctuation" > .< / span > query< span class = "token punctuation" > .< / span > llm< span class = "token punctuation" > .< / span > oai< span class = "token punctuation" > .< / span > typing < span class = "token keyword" > import< / span > OpenaiApiType
2024-04-23 22:13:30 +00:00
< span class = "token keyword" > from< / span > graphrag< span class = "token punctuation" > .< / span > query< span class = "token punctuation" > .< / span > structured_search< span class = "token punctuation" > .< / span > global_search< span class = "token punctuation" > .< / span > community_context < span class = "token keyword" > import< / span > < span class = "token punctuation" > (< / span >
GlobalCommunityContext< span class = "token punctuation" > ,< / span >
< span class = "token punctuation" > )< / span >
2024-04-04 01:23:24 +00:00
< span class = "token keyword" > from< / span > graphrag< span class = "token punctuation" > .< / span > query< span class = "token punctuation" > .< / span > structured_search< span class = "token punctuation" > .< / span > global_search< span class = "token punctuation" > .< / span > search < span class = "token keyword" > import< / span > GlobalSearch
2024-04-23 22:13:30 +00:00
< span class = "token keyword" > print< / span > < span class = "token punctuation" > (< / span > Path< span class = "token punctuation" > .< / span > cwd< span class = "token punctuation" > (< / span > < span class = "token punctuation" > )< / span > < span class = "token punctuation" > )< / span > < / code > < / pre >
2024-04-04 01:23:24 +00:00
2024-04-23 22:13:30 +00:00
< button class = "code-copy " data-clipboard-target = "#code-4" style = "position: absolute; top: 7.5px; right: 6px; padding-top: 3px; cursor: pointer; outline: none; opacity: 0.8;" title = "Copy" >
2024-04-04 01:23:24 +00:00
< span style = "display:inline-block;background:url(https://api.iconify.design/mdi/content-copy.svg) no-repeat center center / contain;width: 16px; height: 16px;" class = "" > < / span >
< / button >
< / div >
< h2 > Global Search example< / h2 >
< p > Global search method generates answers by searching over all AI-generated community reports in a map-reduce fashion. This is a resource-intensive method, but often gives good responses for questions that require an understanding of the dataset as a whole (e.g. What are the most significant values of the herbs mentioned in this notebook?).< / p >
< h3 > LLM setup< / h3 >
< div style = "position: relative" >
2024-04-23 22:13:30 +00:00
< pre class = "language-python" > < code id = "code-14" class = "language-python" > api_key < span class = "token operator" > =< / span > os< span class = "token punctuation" > .< / span > environ< span class = "token punctuation" > [< / span > < span class = "token string" > "GRAPHRAG_API_KEY"< / span > < span class = "token punctuation" > ]< / span >
llm_model < span class = "token operator" > =< / span > os< span class = "token punctuation" > .< / span > environ< span class = "token punctuation" > [< / span > < span class = "token string" > "GRAPHRAG_EMBEDDING_MODEL"< / span > < span class = "token punctuation" > ]< / span >
2024-04-04 01:23:24 +00:00
llm < span class = "token operator" > =< / span > ChatOpenAI< span class = "token punctuation" > (< / span >
api_key< span class = "token operator" > =< / span > api_key< span class = "token punctuation" > ,< / span >
model< span class = "token operator" > =< / span > llm_model< span class = "token punctuation" > ,< / span >
2024-04-23 22:13:30 +00:00
api_type< span class = "token operator" > =< / span > OpenaiApiType< span class = "token punctuation" > .< / span > OpenAI< span class = "token punctuation" > ,< / span > < span class = "token comment" > # OpenaiApiType.OpenAI or OpenaiApiType.AzureOpenAI< / span >
max_retries< span class = "token operator" > =< / span > < span class = "token number" > 20< / span > < span class = "token punctuation" > ,< / span >
2024-04-04 01:23:24 +00:00
< span class = "token punctuation" > )< / span >
token_encoder < span class = "token operator" > =< / span > tiktoken< span class = "token punctuation" > .< / span > get_encoding< span class = "token punctuation" > (< / span > < span class = "token string" > "cl100k_base"< / span > < span class = "token punctuation" > )< / span > < / code > < / pre >
2024-04-23 22:13:30 +00:00
< button class = "code-copy " data-clipboard-target = "#code-14" style = "position: absolute; top: 7.5px; right: 6px; padding-top: 3px; cursor: pointer; outline: none; opacity: 0.8;" title = "Copy" >
2024-04-04 01:23:24 +00:00
< span style = "display:inline-block;background:url(https://api.iconify.design/mdi/content-copy.svg) no-repeat center center / contain;width: 16px; height: 16px;" class = "" > < / span >
< / button >
< / div >
< h3 > Load community reports as context for global search< / h3 >
< ul >
< li > Load all community reports from < strong > create_final_community_reports< / strong > table from the ire-indexing engine.< / li >
< / ul >
< div style = "position: relative" >
2024-04-23 22:13:30 +00:00
< pre class = "language-python" > < code id = "code-25" class = "language-python" > < span class = "token comment" > # parquet files generated from indexing pipeline< / span >
INPUT_DIR < span class = "token operator" > =< / span > < span class = "token string" > "./inputs/operation dulce"< / span >
2024-04-04 01:23:24 +00:00
COMMUNITY_REPORT_TABLE < span class = "token operator" > =< / span > < span class = "token string" > "create_final_community_reports"< / span >
ENTITY_TABLE < span class = "token operator" > =< / span > < span class = "token string" > "create_final_nodes"< / span >
< span class = "token comment" > # community level in the Leiden community hierarchy from which we will load the community reports< / span >
< span class = "token comment" > # higher value means we use reports on smaller communities (and thus will have more reports to query aga< / span >
2024-04-23 22:13:30 +00:00
COMMUNITY_LEVEL < span class = "token operator" > =< / span > < span class = "token number" > 2< / span > < / code > < / pre >
2024-04-04 01:23:24 +00:00
2024-04-23 22:13:30 +00:00
< button class = "code-copy " data-clipboard-target = "#code-25" style = "position: absolute; top: 7.5px; right: 6px; padding-top: 3px; cursor: pointer; outline: none; opacity: 0.8;" title = "Copy" >
2024-04-04 01:23:24 +00:00
< span style = "display:inline-block;background:url(https://api.iconify.design/mdi/content-copy.svg) no-repeat center center / contain;width: 16px; height: 16px;" class = "" > < / span >
< / button >
< / div >
< div style = "position: relative" >
2024-04-23 22:13:30 +00:00
< pre class = "language-python" > < code id = "code-26" class = "language-python" > entity_df < span class = "token operator" > =< / span > pd< span class = "token punctuation" > .< / span > read_parquet< span class = "token punctuation" > (< / span > < span class = "token string-interpolation" > < span class = "token string" > f"< / span > < span class = "token interpolation" > < span class = "token punctuation" > {< / span > INPUT_DIR< span class = "token punctuation" > }< / span > < / span > < span class = "token string" > /< / span > < span class = "token interpolation" > < span class = "token punctuation" > {< / span > ENTITY_TABLE< span class = "token punctuation" > }< / span > < / span > < span class = "token string" > .parquet"< / span > < / span > < span class = "token punctuation" > )< / span >
entity_df < span class = "token operator" > =< / span > entity_df< span class = "token punctuation" > [< / span >
< span class = "token punctuation" > (< / span > entity_df< span class = "token punctuation" > .< / span > < span class = "token builtin" > type< / span > < span class = "token operator" > ==< / span > < span class = "token string" > "entity"< / span > < span class = "token punctuation" > )< / span > < span class = "token operator" > & < / span > < span class = "token punctuation" > (< / span > entity_df< span class = "token punctuation" > .< / span > level < span class = "token operator" > < =< / span > < span class = "token string-interpolation" > < span class = "token string" > f"level_< / span > < span class = "token interpolation" > < span class = "token punctuation" > {< / span > COMMUNITY_LEVEL< span class = "token punctuation" > }< / span > < / span > < span class = "token string" > "< / span > < / span > < span class = "token punctuation" > )< / span >
< span class = "token punctuation" > ]< / span >
2024-04-04 01:23:24 +00:00
entity_df< span class = "token punctuation" > [< / span > < span class = "token string" > "community"< / span > < span class = "token punctuation" > ]< / span > < span class = "token operator" > =< / span > entity_df< span class = "token punctuation" > [< / span > < span class = "token string" > "community"< / span > < span class = "token punctuation" > ]< / span > < span class = "token punctuation" > .< / span > fillna< span class = "token punctuation" > (< / span > < span class = "token operator" > -< / span > < span class = "token number" > 1< / span > < span class = "token punctuation" > )< / span >
entity_df< span class = "token punctuation" > [< / span > < span class = "token string" > "community"< / span > < span class = "token punctuation" > ]< / span > < span class = "token operator" > =< / span > entity_df< span class = "token punctuation" > [< / span > < span class = "token string" > "community"< / span > < span class = "token punctuation" > ]< / span > < span class = "token punctuation" > .< / span > astype< span class = "token punctuation" > (< / span > < span class = "token builtin" > int< / span > < span class = "token punctuation" > )< / span >
2024-04-23 22:13:30 +00:00
entity_df < span class = "token operator" > =< / span > entity_df< span class = "token punctuation" > .< / span > groupby< span class = "token punctuation" > (< / span > < span class = "token punctuation" > [< / span > < span class = "token string" > "title"< / span > < span class = "token punctuation" > ]< / span > < span class = "token punctuation" > )< / span > < span class = "token punctuation" > .< / span > agg< span class = "token punctuation" > (< / span > < span class = "token punctuation" > {< / span > < span class = "token string" > "community"< / span > < span class = "token punctuation" > :< / span > < span class = "token string" > "max"< / span > < span class = "token punctuation" > }< / span > < span class = "token punctuation" > )< / span > < span class = "token punctuation" > .< / span > reset_index< span class = "token punctuation" > (< / span > < span class = "token punctuation" > )< / span >
2024-04-04 01:23:24 +00:00
entity_df< span class = "token punctuation" > [< / span > < span class = "token string" > "community"< / span > < span class = "token punctuation" > ]< / span > < span class = "token operator" > =< / span > entity_df< span class = "token punctuation" > [< / span > < span class = "token string" > "community"< / span > < span class = "token punctuation" > ]< / span > < span class = "token punctuation" > .< / span > astype< span class = "token punctuation" > (< / span > < span class = "token builtin" > str< / span > < span class = "token punctuation" > )< / span >
2024-04-23 22:13:30 +00:00
filtered_community_df < span class = "token operator" > =< / span > entity_df< span class = "token punctuation" > .< / span > rename< span class = "token punctuation" > (< / span > columns< span class = "token operator" > =< / span > < span class = "token punctuation" > {< / span > < span class = "token string" > "community"< / span > < span class = "token punctuation" > :< / span > < span class = "token string" > "community_id"< / span > < span class = "token punctuation" > }< / span > < span class = "token punctuation" > )< / span > < span class = "token punctuation" > [< / span >
< span class = "token string" > "community_id"< / span >
< span class = "token punctuation" > ]< / span > < span class = "token punctuation" > .< / span > drop_duplicates< span class = "token punctuation" > (< / span > < span class = "token punctuation" > )< / span >
2024-04-04 01:23:24 +00:00
report_df < span class = "token operator" > =< / span > pd< span class = "token punctuation" > .< / span > read_parquet< span class = "token punctuation" > (< / span > < span class = "token string-interpolation" > < span class = "token string" > f"< / span > < span class = "token interpolation" > < span class = "token punctuation" > {< / span > INPUT_DIR< span class = "token punctuation" > }< / span > < / span > < span class = "token string" > /< / span > < span class = "token interpolation" > < span class = "token punctuation" > {< / span > COMMUNITY_REPORT_TABLE< span class = "token punctuation" > }< / span > < / span > < span class = "token string" > .parquet"< / span > < / span > < span class = "token punctuation" > )< / span >
report_df < span class = "token operator" > =< / span > report_df< span class = "token punctuation" > [< / span > report_df< span class = "token punctuation" > .< / span > level < span class = "token operator" > < =< / span > < span class = "token string-interpolation" > < span class = "token string" > f"level_< / span > < span class = "token interpolation" > < span class = "token punctuation" > {< / span > COMMUNITY_LEVEL< span class = "token punctuation" > }< / span > < / span > < span class = "token string" > "< / span > < / span > < span class = "token punctuation" > ]< / span >
2024-04-23 22:13:30 +00:00
report_df< span class = "token punctuation" > [< / span > < span class = "token string" > "rank"< / span > < span class = "token punctuation" > ]< / span > < span class = "token operator" > =< / span > report_df< span class = "token punctuation" > [< / span > < span class = "token string" > "rank"< / span > < span class = "token punctuation" > ]< / span > < span class = "token punctuation" > .< / span > fillna< span class = "token punctuation" > (< / span > < span class = "token operator" > -< / span > < span class = "token number" > 1< / span > < span class = "token punctuation" > )< / span >
2024-04-04 01:23:24 +00:00
report_df< span class = "token punctuation" > [< / span > < span class = "token string" > "rank"< / span > < span class = "token punctuation" > ]< / span > < span class = "token operator" > =< / span > report_df< span class = "token punctuation" > [< / span > < span class = "token string" > "rank"< / span > < span class = "token punctuation" > ]< / span > < span class = "token punctuation" > .< / span > astype< span class = "token punctuation" > (< / span > < span class = "token builtin" > int< / span > < span class = "token punctuation" > )< / span >
report_df < span class = "token operator" > =< / span > report_df< span class = "token punctuation" > .< / span > merge< span class = "token punctuation" > (< / span > filtered_community_df< span class = "token punctuation" > ,< / span > on< span class = "token operator" > =< / span > < span class = "token string" > "community_id"< / span > < span class = "token punctuation" > ,< / span > how< span class = "token operator" > =< / span > < span class = "token string" > "inner"< / span > < span class = "token punctuation" > )< / span >
reports < span class = "token operator" > =< / span > read_community_reports< span class = "token punctuation" > (< / span >
df< span class = "token operator" > =< / span > report_df< span class = "token punctuation" > ,< / span >
id_col< span class = "token operator" > =< / span > < span class = "token string" > "community_id"< / span > < span class = "token punctuation" > ,< / span >
short_id_col< span class = "token operator" > =< / span > < span class = "token string" > "community_id"< / span > < span class = "token punctuation" > ,< / span >
community_col< span class = "token operator" > =< / span > < span class = "token string" > "community_id"< / span > < span class = "token punctuation" > ,< / span >
title_col< span class = "token operator" > =< / span > < span class = "token string" > "title"< / span > < span class = "token punctuation" > ,< / span >
summary_col< span class = "token operator" > =< / span > < span class = "token string" > "summary"< / span > < span class = "token punctuation" > ,< / span >
content_col< span class = "token operator" > =< / span > < span class = "token string" > "full_content"< / span > < span class = "token punctuation" > ,< / span >
rank_col< span class = "token operator" > =< / span > < span class = "token string" > "rank"< / span > < span class = "token punctuation" > ,< / span >
summary_embedding_col< span class = "token operator" > =< / span > < span class = "token boolean" > None< / span > < span class = "token punctuation" > ,< / span >
content_embedding_col< span class = "token operator" > =< / span > < span class = "token boolean" > None< / span > < span class = "token punctuation" > ,< / span >
< span class = "token punctuation" > )< / span >
2024-04-23 22:13:30 +00:00
< span class = "token keyword" > print< / span > < span class = "token punctuation" > (< / span > < span class = "token string-interpolation" > < span class = "token string" > f"Report records: < / span > < span class = "token interpolation" > < span class = "token punctuation" > {< / span > < span class = "token builtin" > len< / span > < span class = "token punctuation" > (< / span > report_df< span class = "token punctuation" > )< / span > < span class = "token punctuation" > }< / span > < / span > < span class = "token string" > "< / span > < / span > < span class = "token punctuation" > )< / span >
2024-04-04 01:23:24 +00:00
report_df< span class = "token punctuation" > .< / span > head< span class = "token punctuation" > (< / span > < span class = "token punctuation" > )< / span > < / code > < / pre >
2024-04-23 22:13:30 +00:00
< button class = "code-copy " data-clipboard-target = "#code-26" style = "position: absolute; top: 7.5px; right: 6px; padding-top: 3px; cursor: pointer; outline: none; opacity: 0.8;" title = "Copy" >
2024-04-04 01:23:24 +00:00
< span style = "display:inline-block;background:url(https://api.iconify.design/mdi/content-copy.svg) no-repeat center center / contain;width: 16px; height: 16px;" class = "" > < / span >
< / button >
< / div >
< h4 > Build global context based on community reports< / h4 >
< div style = "position: relative" >
2024-04-23 22:13:30 +00:00
< pre class = "language-python" > < code id = "code-30" class = "language-python" > context_builder < span class = "token operator" > =< / span > GlobalCommunityContext< span class = "token punctuation" > (< / span >
community_reports< span class = "token operator" > =< / span > reports< span class = "token punctuation" > ,< / span > token_encoder< span class = "token operator" > =< / span > token_encoder
2024-04-04 01:23:24 +00:00
< span class = "token punctuation" > )< / span > < / code > < / pre >
2024-04-23 22:13:30 +00:00
< button class = "code-copy " data-clipboard-target = "#code-30" style = "position: absolute; top: 7.5px; right: 6px; padding-top: 3px; cursor: pointer; outline: none; opacity: 0.8;" title = "Copy" >
2024-04-04 01:23:24 +00:00
< span style = "display:inline-block;background:url(https://api.iconify.design/mdi/content-copy.svg) no-repeat center center / contain;width: 16px; height: 16px;" class = "" > < / span >
< / button >
< / div >
< h4 > Perform global search< / h4 >
< div style = "position: relative" >
2024-04-23 22:13:30 +00:00
< pre class = "language-python" > < code id = "code-34" class = "language-python" > context_builder_params < span class = "token operator" > =< / span > < span class = "token punctuation" > {< / span >
< span class = "token string" > "use_community_summary"< / span > < span class = "token punctuation" > :< / span > < span class = "token boolean" > False< / span > < span class = "token punctuation" > ,< / span > < span class = "token comment" > # False means using full community reports. True means using community short summaries.< / span >
2024-04-04 01:23:24 +00:00
< span class = "token string" > "shuffle_data"< / span > < span class = "token punctuation" > :< / span > < span class = "token boolean" > True< / span > < span class = "token punctuation" > ,< / span >
< span class = "token string" > "include_community_rank"< / span > < span class = "token punctuation" > :< / span > < span class = "token boolean" > True< / span > < span class = "token punctuation" > ,< / span >
< span class = "token string" > "min_community_rank"< / span > < span class = "token punctuation" > :< / span > < span class = "token number" > 0< / span > < span class = "token punctuation" > ,< / span >
2024-04-23 22:13:30 +00:00
< span class = "token string" > "max_tokens"< / span > < span class = "token punctuation" > :< / span > < span class = "token number" > 12_000< / span > < span class = "token punctuation" > ,< / span > < span class = "token comment" > # change this based on the token limit you have on your model (if you are using a model with 8k limit, a good setting could be 5000)< / span >
2024-04-04 01:23:24 +00:00
< span class = "token string" > "context_name"< / span > < span class = "token punctuation" > :< / span > < span class = "token string" > "Reports"< / span > < span class = "token punctuation" > ,< / span >
< span class = "token punctuation" > }< / span >
map_llm_params < span class = "token operator" > =< / span > < span class = "token punctuation" > {< / span >
< span class = "token string" > "max_tokens"< / span > < span class = "token punctuation" > :< / span > < span class = "token number" > 500< / span > < span class = "token punctuation" > ,< / span >
< span class = "token string" > "temperature"< / span > < span class = "token punctuation" > :< / span > < span class = "token number" > 0.0< / span > < span class = "token punctuation" > ,< / span >
< span class = "token punctuation" > }< / span >
reduce_llm_params < span class = "token operator" > =< / span > < span class = "token punctuation" > {< / span >
2024-04-23 22:13:30 +00:00
< span class = "token string" > "max_tokens"< / span > < span class = "token punctuation" > :< / span > < span class = "token number" > 2000< / span > < span class = "token punctuation" > ,< / span > < span class = "token comment" > # change this based on the token limit you have on your model (if you are using a model with 8k limit, a good setting could be 1000-1500)< / span >
2024-04-04 01:23:24 +00:00
< span class = "token string" > "temperature"< / span > < span class = "token punctuation" > :< / span > < span class = "token number" > 0.0< / span > < span class = "token punctuation" > ,< / span >
< span class = "token punctuation" > }< / span > < / code > < / pre >
2024-04-23 22:13:30 +00:00
< button class = "code-copy " data-clipboard-target = "#code-34" style = "position: absolute; top: 7.5px; right: 6px; padding-top: 3px; cursor: pointer; outline: none; opacity: 0.8;" title = "Copy" >
2024-04-04 01:23:24 +00:00
< span style = "display:inline-block;background:url(https://api.iconify.design/mdi/content-copy.svg) no-repeat center center / contain;width: 16px; height: 16px;" class = "" > < / span >
< / button >
< / div >
< div style = "position: relative" >
2024-04-23 22:13:30 +00:00
< pre class = "language-python" > < code id = "code-35" class = "language-python" > search_engine < span class = "token operator" > =< / span > GlobalSearch< span class = "token punctuation" > (< / span >
2024-04-04 01:23:24 +00:00
llm< span class = "token operator" > =< / span > llm< span class = "token punctuation" > ,< / span >
context_builder< span class = "token operator" > =< / span > context_builder< span class = "token punctuation" > ,< / span >
token_encoder< span class = "token operator" > =< / span > token_encoder< span class = "token punctuation" > ,< / span >
2024-04-23 22:13:30 +00:00
max_data_tokens< span class = "token operator" > =< / span > < span class = "token number" > 16_000< / span > < span class = "token punctuation" > ,< / span > < span class = "token comment" > # change this based on the token limit you have on your model (if you are using a model with 8k limit, a good setting could be 5000)< / span >
2024-04-04 01:23:24 +00:00
map_llm_params< span class = "token operator" > =< / span > map_llm_params< span class = "token punctuation" > ,< / span >
reduce_llm_params< span class = "token operator" > =< / span > reduce_llm_params< span class = "token punctuation" > ,< / span >
context_builder_params< span class = "token operator" > =< / span > context_builder_params< span class = "token punctuation" > ,< / span >
concurrent_coroutines< span class = "token operator" > =< / span > < span class = "token number" > 32< / span > < span class = "token punctuation" > ,< / span >
2024-04-23 22:13:30 +00:00
response_type< span class = "token operator" > =< / span > < span class = "token string" > "multiple paragraphs"< / span > < span class = "token punctuation" > ,< / span > < span class = "token comment" > # free form text describing the response type and format, can be anything, e.g. prioritized list, single paragraph, multiple paragraphs, multiple-page report< / span >
2024-04-04 01:23:24 +00:00
< span class = "token punctuation" > )< / span > < / code > < / pre >
2024-04-23 22:13:30 +00:00
< button class = "code-copy " data-clipboard-target = "#code-35" style = "position: absolute; top: 7.5px; right: 6px; padding-top: 3px; cursor: pointer; outline: none; opacity: 0.8;" title = "Copy" >
2024-04-04 01:23:24 +00:00
< span style = "display:inline-block;background:url(https://api.iconify.design/mdi/content-copy.svg) no-repeat center center / contain;width: 16px; height: 16px;" class = "" > < / span >
< / button >
< / div >
< div style = "position: relative" >
2024-04-23 22:13:30 +00:00
< pre class = "language-python" > < code id = "code-36" class = "language-python" > result < span class = "token operator" > =< / span > < span class = "token keyword" > await< / span > search_engine< span class = "token punctuation" > .< / span > asearch< span class = "token punctuation" > (< / span >
< span class = "token string" > "What is the major conflict in this story and who are the protagonist and antagonist?"< / span >
< span class = "token punctuation" > )< / span >
2024-04-04 01:23:24 +00:00
< span class = "token keyword" > print< / span > < span class = "token punctuation" > (< / span > result< span class = "token punctuation" > .< / span > response< span class = "token punctuation" > )< / span > < / code > < / pre >
2024-04-23 22:13:30 +00:00
< button class = "code-copy " data-clipboard-target = "#code-36" style = "position: absolute; top: 7.5px; right: 6px; padding-top: 3px; cursor: pointer; outline: none; opacity: 0.8;" title = "Copy" >
2024-04-04 01:23:24 +00:00
< span style = "display:inline-block;background:url(https://api.iconify.design/mdi/content-copy.svg) no-repeat center center / contain;width: 16px; height: 16px;" class = "" > < / span >
< / button >
< / div >
< div style = "position: relative" >
2024-04-23 22:13:30 +00:00
< pre class = "language-python" > < code id = "code-37" class = "language-python" > < span class = "token comment" > # inspect the data used to build the context for the LLM responses< / span >
2024-04-04 01:23:24 +00:00
result< span class = "token punctuation" > .< / span > context_data< span class = "token punctuation" > [< / span > < span class = "token string" > "reports"< / span > < span class = "token punctuation" > ]< / span > < / code > < / pre >
2024-04-23 22:13:30 +00:00
< button class = "code-copy " data-clipboard-target = "#code-37" style = "position: absolute; top: 7.5px; right: 6px; padding-top: 3px; cursor: pointer; outline: none; opacity: 0.8;" title = "Copy" >
2024-04-04 01:23:24 +00:00
< span style = "display:inline-block;background:url(https://api.iconify.design/mdi/content-copy.svg) no-repeat center center / contain;width: 16px; height: 16px;" class = "" > < / span >
< / button >
< / div >
< div style = "position: relative" >
2024-04-23 22:13:30 +00:00
< pre class = "language-python" > < code id = "code-38" class = "language-python" > < span class = "token comment" > # inspect number of LLM calls and tokens< / span >
< span class = "token keyword" > print< / span > < span class = "token punctuation" > (< / span > < span class = "token string-interpolation" > < span class = "token string" > f"LLM calls: < / span > < span class = "token interpolation" > < span class = "token punctuation" > {< / span > result< span class = "token punctuation" > .< / span > llm_calls< span class = "token punctuation" > }< / span > < / span > < span class = "token string" > . LLM tokens: < / span > < span class = "token interpolation" > < span class = "token punctuation" > {< / span > result< span class = "token punctuation" > .< / span > prompt_tokens< span class = "token punctuation" > }< / span > < / span > < span class = "token string" > "< / span > < / span > < span class = "token punctuation" > )< / span > < / code > < / pre >
2024-04-04 01:23:24 +00:00
2024-04-23 22:13:30 +00:00
< button class = "code-copy " data-clipboard-target = "#code-38" style = "position: absolute; top: 7.5px; right: 6px; padding-top: 3px; cursor: pointer; outline: none; opacity: 0.8;" title = "Copy" >
2024-04-04 01:23:24 +00:00
< span style = "display:inline-block;background:url(https://api.iconify.design/mdi/content-copy.svg) no-repeat center center / contain;width: 16px; height: 16px;" class = "" > < / span >
< / button >
< / div >
< p > LLM calls: 13. LLM tokens: 184660< / p >