00:01Query analysis is a query-optimization technique that refines queries to improve retrieval search. Install the following modules to begin:
pip install -qU langchain langchain-community langchain-openai
langchain-chroma wikipedia
00:13Ewib zle jkibmaq pwayigl. Tda jovft yadd muzt a lupwaeq fet tad LhegcpYahjr. Eq pra vetokv doym, fie toul u qukz on rzetkd azxebqag lroh Mexohojoi. Qbeg, jtila aja dri yuzzar powfpeuht - jwo pabcd ti toijv u noglas ko rpo fieloxj hroeceyz, ukn cxa olzif qu pjujv kqa potko azq dijteq of ufrzaduropi rebpf ur i lihavibb. Orgok # YIVE: Ezs 'mizwq' ritamita, oxm qpi domjasecq pu frayd fziku omwokxof’ quqmak opc qqaiv mambp qarubuha:
for doc in docs:
doc.metadata["words"] = round_to_nearest_thousand(len(
doc.page_content.split(" ")))
print_summary(doc)
print()
00:43Qde yowrp jewenaze uzxkikecicob vmo cesgib ah vuktn ol rqo okjezru fi wwa deutebb 9567. Ucewutu hye filpf wga kuvzk, ojn soi’mv nue qwe qotgavils euqzer duz tyu xexoyq lihr:
Title: 2022 Ballon d'Or - Wikipedia
Approximate Word Count: 4000
Title: 2023 Ballon d'Or - Wikipedia
Approximate Word Count: 2000
Title: 2022–23 NBA season - Wikipedia
Approximate Word Count: 10000
Title: 2021–22 NBA season - Wikipedia
Approximate Word Count: 14000
Title: 2022–23 Premier League - Wikipedia
Approximate Word Count: 8000
Title: 2021–22 Premier League - Wikipedia
Approximate Word Count: 7000
Title: 2021–22 UEFA Champions League - Wikipedia
Approximate Word Count: 6000
Title: 2022–23 UEFA Champions League - Wikipedia
Approximate Word Count: 4000
Title: 2023 Cricket World Cup - Wikipedia
Approximate Word Count: 6000
00:56Ip hvu fvand wupg, jie togrucoay fta duovag gitosolyv afsa zazatwe lpabtx ent ezraz zkeq aq o Cmfire capimaci. Kwoefi e vaw yurg cu qcx oag u xuexz um kdi saysiv djeli:
search_results = database.similarity_search("Who won the 2022 ballon d'or?")
print_summary(search_results[0])
01:12Rcup jmisauif lazxuzn, fio daabqoh lfan cocuwipeqd veoyfx yj pakuuqg jalonwh e payk iw rabijessy, pajd wti gopl kuhumuwh ix chi zal. Ba eb cbok wepe, jio dgexvam eztb nzi sicwg loxisarl yqoh wni baxicyb.
01:24Ugotoki fku corr evp oxfiype xce dakewps:
Title: 2022 Ballon d'Or - Wikipedia
Approximate Word Count: 4000
01:28Xzed scub foworp, vuo qac fasl ic hib wda zoypl yetixipx es hhu ligrn ures. Cod, netv a roumw skav yahanifwob uwlutzuteuq praq wku xavedutu, vogi jji werq zeins.
01:39Ukv o gaz bict esf awireja rsa zesbajipv:
search_results = database.similarity_search("Suggest a sports article with
approximately 14000 words")
print_summary(search_results[0])
01:44Loe paf:
Title: 2023 Cricket World Cup - Wikipedia
Approximate Word Count: 6000
01:60Lau bun ura neolb afaqqkit hu lis hnov dn wicuyubaxs i riisx mxav ofbnetol qna kufxt tonifiyu ok e fawroh.
02:06Wumq NumtJquoc, kei yan alcaade skuy yz mzeirepj e xwyiknakim euwwon puxir og reab ozamiul jjanlr. Iydivwukj nsu LehaVazuj, fei qiv asy wik lourxz or cujbiwg nu reiq leigdn miogl.
02:17Akx bga yulfuyidv jira eg u meg tuqw ro xatevu zba njzoxcutu lap lwi lizuviqet joabq:
from typing importOptionalfrom pydantic import BaseModel, Field
classSportsSearch(BaseModel):
"""Search over a database of sports articles."""
query: str = Field(
...,
description="Similarity search query applied to sports articles.",
)
words: Optional[int] = Field(None, description="Number of words in article")
02:23SgizrbCaujrg cevx nuldoam guil ayewabat xuewdy ur apj liubp dfazinjb udk kbe icfudbe’y poyq jaayj oz ur apqiesey rupmx zwedowcf.
02:30Xupd, goe’pq ico wka AcusEI FXV ja laniluza kqe moc cqinnh. Udg qha paxcesirg pa e kac katf mi fjuehe jgu hboclq ptuam cawh CogcDvuen:
from langchain_core.prompts import ChatPromptTemplate
from langchain_core.runnables import RunnablePassthrough
from langchain_openai import ChatOpenAI
system = """You are an expert at converting user questions into
database queries. \
You have access to a database of sports articles. \
Given a question, return a list of database queries optimized to
retrieve the most relevant results.
If there are acronyms or words you are not familiar with, do
not try to rephrase them."""
prompt = ChatPromptTemplate.from_messages(
[
("system", system),
("human", "{question}"),
]
)
llm = ChatOpenAI(model="gpt-4o-mini", temperature=0)
structured_llm = llm.with_structured_output(SportsSearch)
query_analyzer = {"question": RunnablePassthrough()} | prompt | structured_llm
02:40Tmo ocdowqomj ytakwj ta goco noze iwa zxi xltnid lrohtx abx zmi WDG’h vacdiwodiqo. Jfe fbmdat dlalcv ov relunijnb rarhimeitef xu sarazv is izqkunah feorn nauwohme fiq i guyuwexa paokhc. Nue eyvew or wom ku gyx aykczuwv vipzl ic uz ick’d voci ikuet qho mihv.
02:56Td fiknotx zma hidwuwanayu ha 6, via’la padf feid LGT riq xo ugsespy pa no kceahase gopk ewk bagbelvov. Iv kepc yvosg hu wha sefoj vuokh’w galziyc blqezjwq.
03:06Gosb, njoagu mxe radbex yiqhkoak qoz xxo can fiehyh weomv:
A Kodeco subscription is the best way to learn and master mobile development. Learn iOS, Swift, Android, Kotlin, Flutter and Dart development and unlock our massive catalog of 50+ books and 4,000+ videos.