Skip to content

API is valid but got invalid response, I am not sure where I got it wrong. #291

@ghLcd9dG

Description

@ghLcd9dG

API is valid but got invalid response, I am not sure where I got it wrong.

import os
import logging
import warnings as wa

wa.warn_explicit = wa.warn = lambda *_, **__: None

from datetime import datetime
from configparser import ConfigParser
from lagent.agents import AgentForInternLM
from lagent.actions import WebBrowser
from lagent.prompts import PluginParser
from lagent.llms import GPTAPI
from lagent.agents.stream import get_plugin_prompt
from typing import List

from src.utils.debugger.custom_print import enable_custom_print
from src.agent.prompts import (
    searcher_context_template_cn,
    searcher_input_template_cn,
    searcher_system_prompt_cn,
)

enable_custom_print()

config = ConfigParser()
config.read("config/config.ini")

bing_api_key = config.get("BING", "BING_API_KEY")
subscription_key = config.get("SILICON", "SILICON_API_KEY")


date = datetime.now().strftime("The current date is %Y-%m-%d.")

llm = GPTAPI(
    model_type="internlm/internlm2_5-7b-chat",
    key=subscription_key,
    api_base="https://api.siliconflow.cn/v1/chat/completions",
    meta_template=[
        dict(role="system", api_role="system"),
        dict(role="user", api_role="user"),
        dict(role="assistant", api_role="assistant"),
        dict(role="environment", api_role="system"),
    ],
    top_k=1,
    top_p=0.8,
    temperature=0,
    max_new_tokens=8192,
    repetition_penalty=1.02,
    stop_words=["<|im_end|>"],
)

plugins = [
    WebBrowser(
        searcher_type="BingSearch",
        topk=6,
        api_key=bing_api_key or os.environ.get("BING_API_KEY"),
    )
]

# agent = AgentForInternLM(
#     llm=llm,  # LLM模型配置
#     max_turn=4,         # 最大对话轮数
#     plugins=plugins,      # 可用的插件列表
#     template=search_template_cn,
#     output_format=PluginParser(
#         template=(searcher_system_prompt_cn),
#         tool_info=get_plugin_prompt(plugins),
#     ),
# )


class SearcherAgent(AgentForInternLM):
    def __init__(
        self,
        user_input_template: str = "{question}",
        user_context_template: str = None,
        **kwargs,
    ):
        self.user_input_template = user_input_template
        self.user_context_template = user_context_template
        super().__init__(**kwargs)

    def forward(
        self,
        question: str,
        topic: str,
        history: List[dict] = None,
        session_id=0,
        **kwargs,
    ):
        message = [self.user_input_template.format(question=question, topic=topic)]
        if history and self.user_context_template:
            message = [
                self.user_context_template.format_map(item) for item in history
            ] + message
        message = "\n".join(message)
        return super().forward(message, session_id=session_id, **kwargs)


searcher_config = dict(
    llm=llm,
    max_turn=4,
    plugins=plugins,
    template=date,
    output_format=PluginParser(
        template=(searcher_system_prompt_cn),
        tool_info=get_plugin_prompt(plugins),
    ),
    user_input_template=searcher_input_template_cn,
    user_context_template=searcher_context_template_cn,
)

# print(f"searcher_config: {searcher_config}")

searcher_agent = SearcherAgent(**searcher_config)


def main():
    question = "请介绍一下ChatGPT的发展历程"
    topic = "人工智能"

    response = searcher_agent.forward(question=question, topic=topic, history=None)

    print("搜索结果:")
    print(response)


if __name__ == "__main__":
    main()

execution result

root@5583da9ef206:~/MAS-APR# bash run.sh 
Script started at: 2025-01-07_06-41-42
--------------------------------
/root/MAS-APR/src/lagent_utils/lagent_internlm.py:124 - 搜索结果:
/root/MAS-APR/src/lagent_utils/lagent_internlm.py:125 - content='invalid API: run' sender='ActionExecutor' formatted=None extra_info=None type=None receiver=None stream_state=<AgentStatusCode.END: 0>
--------------------------------
Script ended at: 2025-01-07_06-41-51
Used time: 9 seconds

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions