Skip to content

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

@Fs2qFtoS

Description

@Fs2qFtoS

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
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions