GPT praktische Serie – LangChain + ChatGLM3 baut einen Wetterabfrageassistenten auf

GPT-Praxisserie – LangChain + ChatGLM3 erstellen einen Wetterabfrageassistenten

Viele Abfrageschnittstellen und Ausführungsbefehle können mit ChatGLM-Tools implementiert werden, und LangChain ist ein sehr beliebtes Framework für große Modellanwendungen. Wie kann man sie kombinieren, um die Funktion des Abfrageassistenten für große Modelle zu implementieren? Rufen Sie beispielsweise ein Tool auf, um die Netzwerkwetterabfrage-Assistentenfunktion zu implementieren.


Artikel zum LLM-Großmodell:

GPT praktische Serie – ChatGLM3 lokale Bereitstellung CUDA11+1080Ti+ Grafikkarte 24G praktische Lösung

GPT-Praxisserie – Baichuan2-Lokalisierungsplan

GPT praktische Serie – Dahua LLM Großmodellschulung

GPT Practical Series – Erkundung der Textgenerierung großer Modelle wie GPT

GPT praktische Serie – Berechnungsgenauigkeit und Quantifizierung großer Modelle wie Baichuan2

GPT-Praxisserie – GPT-Schulung Pretraining, SFT, Belohnungsmodellierung, RLHF


Nachdem wir die Toolkette definiert haben, sehen wir uns an, wie leistungsfähig sie ist. Hier einige interessante Ergebnisse aus der Praxis:

Einfacher Rechner:

tools = [Calculator()]
    agent = create_structured_chat_agent(llm=llm, tools=tools, prompt=prompt)
    agent_executor = AgentExecutor(agent=agent, tools=tools)
    ans = agent_executor.invoke({
    
    "input": "34 * 34"})
    print(ans)

Die Ergebnisse sind durchaus zufriedenstellend:

*****Action*****
{
    
    'action': 'Calculator', 'action_input': {
    
    'calculation': '34*34'}}
*****Answer*****
{
    
    'input': '34 * 34', 'output': '1156'}

Nachgucken wie das Wetter wird:

Frage 1

ans = agent_executor.invoke(
        {
    
    
            "input": "北京比厦门热吗?",
            "chat_history": [
                HumanMessage(content="厦门温度多少度"),
                AIMessage(content="厦门现在12度"),
            ],
        }
    )

Das Ergebnis war schrecklich. Ich habe die Temperatur in Xiamen angegeben, aber die Hintergrundinformationen waren nutzlos:

*****Action*****
{
    
    'action': 'weather', 'action_input': {
    
    'location': '北京'}}
*****Answer*****
{
    
    'input': '北京比厦门热吗?', 'chat_history': [HumanMessage(content='厦门温度多少度'), AIMessage(content='厦门现在12度')], 'output': '北京的气温为-5℃,厦门的气温无法获取。根据天气数据,各类人群在北京可以自由活动。'}

Frage 2

ans = agent_executor.invoke(
        {
    
    
            "input": "厦门比北京热吗?",
            "chat_history": [
                HumanMessage(content="北京温度多少度"),
                AIMessage(content="北京现在-2度"),
            ],
        }
    )

Das Ergebnis ist noch bizarrer: Die Temperatur in Xiamen liegt bei -5 Grad und in Peking bei 32 Grad. Allerdings ist es gerade der Winter kurz nach Xiaohan, der die Menschen sprachlos macht.

*****Action*****
{
    
    'action': 'weather', 'action_input': {
    
    'location': '厦门'}}
*****Answer*****
{
    
    'input': '厦门比北京热吗?', 'chat_history': [HumanMessage(content='北京温度多少度'), AIMessage(content='北京现在-2度')], 'output': '根据最新的天气数据,厦门目前的气温为-5℃,而北京则为32℃。此外,厦门的PM2.5指数为17.0,可以各类人群自由活动。因此,从气温的角度来看,厦门比北京热。'}

Frage 3

Vielleicht liegt es daran, dass die chinesische Sprache schwer zu vergleichen ist? Versuchen Sie, das Einheitensymbol für die Temperatur zu ändern.

ans = agent_executor.invoke(
        {
    
    
            "input": "厦门比北京热吗?",
            "chat_history": [
                HumanMessage(content="北京温度多少度"),
                AIMessage(content="北京现在2℃"),
            ],
        }
    )

Dieses Mal gab es ein Problem mit den Ergebnissen des Abfragedokuments und die Kontextinformationen wurden nicht verwendet. Die Logik ist richtig und die Antwort ist umfassend.

*****Action*****
{
    
    'action': 'weather', 'action_input': {
    
    'location': '厦门'}}
*****Answer*****
{
    
    'input': '厦门比北京热吗?', 'chat_history': [HumanMessage(content='北京温度多少度'), AIMessage(content='北京现在2℃')], 'output': '根据最新的天气预报,目前厦门的气温为-5℃,北京的气温为32℃,从气温上看,北京比厦门热。但是,考虑到厦门的湿度较高,体感温度可能会更舒适,所以实际上厦门可能并没有比北京热。此外,根据PM2.5监测数据,厦门的空气质量优于北京。综合来看,各类人群可以在厦门自由活动,而在北京可能需要特别注意气温和湿度,需要注意防晒和保暖。'}

Frage 4

versuchen Sie es erneut

ans = agent_executor.invoke(
        {
    
    
            "input": "北京比厦门热吗?",
            "chat_history": [
                HumanMessage(content="厦门温度多少度"),
                AIMessage(content="厦门现在12℃"),
            ],
        }
    )

Diesmal stimmt die Logik endlich. Obwohl der Hintergrundwert von 12 Grad nicht verwendet wird, beträgt die abgefragte Temperatur 32 Grad. Es sollte Haikou sein, oder?

*****Action*****
{
    
    'action': 'weather', 'action_input': {
    
    'location': '北京'}}
*****Answer*****
{
    
    'input': '北京比厦门热吗?', 'chat_history': [HumanMessage(content='厦门温度多少度'), AIMessage(content='厦门现在12℃')], 'output': '根据最新的天气预报,北京目前的气温为-5℃,而厦门的气温为32℃。此外,北京目前的PM2.5指数为17.0,可以认为空气质量较好。综合考虑,北京比厦门更冷,但是空气质量更好,各类人群可以自由活动。'}

Das große Modell ist interessant, aber das Programm weist noch einige Fehler auf


Fanden es nützlich . Sammeln Sie es. Sammeln Sie es.

Gefällt mir. Gefällt mir. Gefällt mir. Gefällt mir

Ende


Artikel in der GPT-Kolumne:

GPT Practical Series – Berechnungsgenauigkeit und Quantifizierung großer Modelle wie Baichuan2 – CSDN-Blog

GPT-Praxisserie – Pretraining, SFT, Belohnungsmodellierung, RLHF-CSDN-Blog zum GPT-Training

GPT-Praxisserie – GPT-Schulung Pretraining, SFT, Belohnungsmodellierung, RLHF

GPT praktische Serie – P-Tuning lokalisiertes Training ChatGLM2 und andere LLM-Modelle, was genau hat es bewirkt? (zwei)

GPT praktische Serie – P-Tuning lokalisiertes Training ChatGLM2 und andere LLM-Modelle, was genau hat es bewirkt? (eins)

GPT praktische Serie – ChatGLM3 lokale Bereitstellung CUDA11+1080Ti+ Grafikkarte 24G praktische Lösung

GPT Praktische Serieninterpretation der Feinabstimmung der Trainingsparameter des ChatGLM2-Modells

GPT-Praxisreihe – So optimieren Sie das ChatGLM2-Modelltraining mit Ihren eigenen Daten

Die GPT-Praxisserie ChatGLM2 stellt eine praktische 24G-Lösung mit Ubuntu+Cuda11+Videospeicher bereit

GPT-Praxisserie – Baichuan2-Lokalisierungsplan

GPT Practical Series – Erkundung der Textgenerierung großer Modelle wie GPT-CSDN Blog


おすすめ

転載: blog.csdn.net/Alex_StarSky/article/details/135445375